add asn1c generated C source for RANAP (and Makefile to regenerate)
diff --git a/src/ranap/Makefile b/src/ranap/Makefile
new file mode 100644
index 0000000..bcd7fd1
--- /dev/null
+++ b/src/ranap/Makefile
@@ -0,0 +1,1031 @@
+ASN_MODULE_SOURCES=	\
+	RANAP_Criticality.c	\
+	RANAP_Presence.c	\
+	RANAP_PrivateIE-ID.c	\
+	RANAP_ProcedureCode.c	\
+	RANAP_ProtocolExtensionID.c	\
+	RANAP_ProtocolIE-ID.c	\
+	RANAP_TriggeringMessage.c	\
+	RANAP_IE-Extensions.c	\
+	RANAP_AccuracyFulfilmentIndicator.c	\
+	RANAP_AllocationOrRetentionPriority.c	\
+	RANAP_Alt-RAB-Parameters.c	\
+	RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf.c	\
+	RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrates.c	\
+	RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateList.c	\
+	RANAP_Alt-RAB-Parameter-GuaranteedBitrateInf.c	\
+	RANAP_Alt-RAB-Parameter-GuaranteedBitrateType.c	\
+	RANAP_Alt-RAB-Parameter-GuaranteedBitrates.c	\
+	RANAP_Alt-RAB-Parameter-GuaranteedBitrateList.c	\
+	RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrateInf.c	\
+	RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrates.c	\
+	RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateInf.c	\
+	RANAP_Alt-RAB-Parameter-ExtendedMaxBitrates.c	\
+	RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateList.c	\
+	RANAP_Alt-RAB-Parameter-MaxBitrateInf.c	\
+	RANAP_Alt-RAB-Parameter-MaxBitrateType.c	\
+	RANAP_Alt-RAB-Parameter-MaxBitrates.c	\
+	RANAP_Alt-RAB-Parameter-MaxBitrateList.c	\
+	RANAP_Alt-RAB-Parameter-SupportedMaxBitrateInf.c	\
+	RANAP_Alt-RAB-Parameter-SupportedMaxBitrates.c	\
+	RANAP_AlternativeRABConfigurationRequest.c	\
+	RANAP_APN.c	\
+	RANAP_AreaIdentity.c	\
+	RANAP_Ass-RAB-Parameters.c	\
+	RANAP_Ass-RAB-Parameter-ExtendedGuaranteedBitrateList.c	\
+	RANAP_Ass-RAB-Parameter-ExtendedMaxBitrateList.c	\
+	RANAP_Ass-RAB-Parameter-GuaranteedBitrateList.c	\
+	RANAP_Ass-RAB-Parameter-MaxBitrateList.c	\
+	RANAP_AuthorisedPLMNs.c	\
+	RANAP_AuthorisedSNAs.c	\
+	RANAP_BindingID.c	\
+	RANAP_BroadcastAssistanceDataDecipheringKeys.c	\
+	RANAP_Cause.c	\
+	RANAP_CauseMisc.c	\
+	RANAP_CauseNAS.c	\
+	RANAP_CauseProtocol.c	\
+	RANAP_CauseRadioNetwork.c	\
+	RANAP_CauseRadioNetworkExtension.c	\
+	RANAP_CauseNon-Standard.c	\
+	RANAP_CauseTransmissionNetwork.c	\
+	RANAP_Cell-Access-Mode.c	\
+	RANAP_CellBased.c	\
+	RANAP_CellIdList.c	\
+	RANAP_Cell-Id.c	\
+	RANAP_Cell-Capacity-Class-Value.c	\
+	RANAP_CellLoadInformation.c	\
+	RANAP_CellLoadInformationGroup.c	\
+	RANAP_CellType.c	\
+	RANAP_ClientType.c	\
+	RANAP_CriticalityDiagnostics.c	\
+	RANAP_CriticalityDiagnostics-IE-List.c	\
+	RANAP_MessageStructure.c	\
+	RANAP_CGI.c	\
+	RANAP_ChosenEncryptionAlgorithm.c	\
+	RANAP_ChosenIntegrityProtectionAlgorithm.c	\
+	RANAP_CI.c	\
+	RANAP_ClassmarkInformation2.c	\
+	RANAP_ClassmarkInformation3.c	\
+	RANAP_CN-DomainIndicator.c	\
+	RANAP_CN-ID.c	\
+	RANAP_Correlation-ID.c	\
+	RANAP_CSFB-Information.c	\
+	RANAP_CSG-Id.c	\
+	RANAP_CSG-Id-List.c	\
+	RANAP_CSG-Membership-Status.c	\
+	RANAP_DataPDUType.c	\
+	RANAP_DataVolumeReference.c	\
+	RANAP_DataVolumeReportingIndication.c	\
+	RANAP_DCH-ID.c	\
+	RANAP_DeliveryOfErroneousSDU.c	\
+	RANAP_DeliveryOrder.c	\
+	RANAP_DeltaRAListofIdleModeUEs.c	\
+	RANAP_NewRAListofIdleModeUEs.c	\
+	RANAP_RAListwithNoIdleModeUEsAnyMore.c	\
+	RANAP_ForwardingIndication.c	\
+	RANAP_DL-GTP-PDU-SequenceNumber.c	\
+	RANAP_DL-N-PDU-SequenceNumber.c	\
+	RANAP_D-RNTI.c	\
+	RANAP_DRX-CycleLengthCoefficient.c	\
+	RANAP_DSCH-ID.c	\
+	RANAP_EARFCN-Extended.c	\
+	RANAP_E-DCH-MAC-d-Flow-ID.c	\
+	RANAP_ENB-ID.c	\
+	RANAP_EncryptionAlgorithm.c	\
+	RANAP_EncryptionInformation.c	\
+	RANAP_EncryptionKey.c	\
+	RANAP_End-Of-CSFB.c	\
+	RANAP_EquipmentsToBeTraced.c	\
+	RANAP_E-UTRAN-Service-Handover.c	\
+	RANAP_Event.c	\
+	RANAP_Event1F-Parameters.c	\
+	RANAP_Event1I-Parameters.c	\
+	RANAP_ExtendedGuaranteedBitrate.c	\
+	RANAP_ExtendedMaxBitrate.c	\
+	RANAP_ExtendedRNC-ID.c	\
+	RANAP_FrameSequenceNumber.c	\
+	RANAP_FrequenceLayerConvergenceFlag.c	\
+	RANAP_GANSS-PositioningDataSet.c	\
+	RANAP_GANSS-PositioningMethodAndUsage.c	\
+	RANAP_GeographicalArea.c	\
+	RANAP_GeographicalCoordinates.c	\
+	RANAP_GA-AltitudeAndDirection.c	\
+	RANAP_GA-EllipsoidArc.c	\
+	RANAP_GA-Point.c	\
+	RANAP_GA-PointWithAltitude.c	\
+	RANAP_GA-PointWithAltitudeAndUncertaintyEllipsoid.c	\
+	RANAP_GA-PointWithUnCertainty.c	\
+	RANAP_GA-PointWithUnCertaintyEllipse.c	\
+	RANAP_GA-Polygon.c	\
+	RANAP_GA-UncertaintyEllipse.c	\
+	RANAP_GERAN-BSC-Container.c	\
+	RANAP_GERAN-Cell-ID.c	\
+	RANAP_GERAN-Classmark.c	\
+	RANAP_GlobalCN-ID.c	\
+	RANAP_GlobalRNC-ID.c	\
+	RANAP_GTP-TEI.c	\
+	RANAP_GuaranteedBitrate.c	\
+	RANAP_HigherBitratesThan16MbpsFlag.c	\
+	RANAP_HS-DSCH-MAC-d-Flow-ID.c	\
+	RANAP_IMEI.c	\
+	RANAP_IMEIGroup.c	\
+	RANAP_IMEIList.c	\
+	RANAP_IMEISV.c	\
+	RANAP_IMEISVGroup.c	\
+	RANAP_IMEISVList.c	\
+	RANAP_ImmediateMDT.c	\
+	RANAP_IMSI.c	\
+	RANAP_IncludeVelocity.c	\
+	RANAP_InformationExchangeID.c	\
+	RANAP_InformationExchangeType.c	\
+	RANAP_InformationRequested.c	\
+	RANAP_InformationRequestType.c	\
+	RANAP_InformationTransferID.c	\
+	RANAP_InformationTransferType.c	\
+	RANAP_IntegrityProtectionAlgorithm.c	\
+	RANAP_IntegrityProtectionInformation.c	\
+	RANAP_IntegrityProtectionKey.c	\
+	RANAP_InterSystemInformationTransferType.c	\
+	RANAP_InterSystemInformation-TransparentContainer.c	\
+	RANAP_IPMulticastAddress.c	\
+	RANAP_IuSignallingConnectionIdentifier.c	\
+	RANAP_IuTransportAssociation.c	\
+	RANAP_KeyStatus.c	\
+	RANAP_LA-LIST.c	\
+	RANAP_LAC.c	\
+	RANAP_LAI.c	\
+	RANAP_LastKnownServiceArea.c	\
+	RANAP_LastVisitedUTRANCell-Item.c	\
+	RANAP_LHN-ID.c	\
+	RANAP_Links-to-log.c	\
+	RANAP_ListOF-SNAs.c	\
+	RANAP_ListOfInterfacesToTrace.c	\
+	RANAP_InterfacesToTraceItem.c	\
+	RANAP_LoadValue.c	\
+	RANAP_LocationRelatedDataRequestType.c	\
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode.c	\
+	RANAP_LocationReportingTransferInformation.c	\
+	RANAP_ReportChangeOfSAI.c	\
+	RANAP_PeriodicReportingIndicator.c	\
+	RANAP_DirectReportingIndicator.c	\
+	RANAP_L3-Information.c	\
+	RANAP_M1Report.c	\
+	RANAP_M2Report.c	\
+	RANAP_M4Report.c	\
+	RANAP_M4-Collection-Parameters.c	\
+	RANAP_M4-Period.c	\
+	RANAP_M4-Threshold.c	\
+	RANAP_M5Report.c	\
+	RANAP_M5-Period.c	\
+	RANAP_M6Report.c	\
+	RANAP_M6-Period.c	\
+	RANAP_M7Report.c	\
+	RANAP_M7-Period.c	\
+	RANAP_Management-Based-MDT-Allowed.c	\
+	RANAP_MaxBitrate.c	\
+	RANAP_MaxSDU-Size.c	\
+	RANAP_MBMS-PTP-RAB-ID.c	\
+	RANAP_MBMSBearerServiceType.c	\
+	RANAP_MBMSCNDe-Registration.c	\
+	RANAP_MBMSCountingInformation.c	\
+	RANAP_MBMSHCIndicator.c	\
+	RANAP_MBMSIPMulticastAddressandAPNRequest.c	\
+	RANAP_MBMSLinkingInformation.c	\
+	RANAP_MBMSRegistrationRequestType.c	\
+	RANAP_MBMSServiceArea.c	\
+	RANAP_MBMSSessionDuration.c	\
+	RANAP_MBMSSessionIdentity.c	\
+	RANAP_MBMSSessionRepetitionNumber.c	\
+	RANAP_MDT-Activation.c	\
+	RANAP_MDTAreaScope.c	\
+	RANAP_MDT-Configuration.c	\
+	RANAP_MDTMode.c	\
+	RANAP_MDT-PLMN-List.c	\
+	RANAP_MDT-Report-Parameters.c	\
+	RANAP_MeasurementQuantity.c	\
+	RANAP_MeasurementsToActivate.c	\
+	RANAP_MSISDN.c	\
+	RANAP_NAS-PDU.c	\
+	RANAP_NAS-SequenceNumber.c	\
+	RANAP_NAS-SynchronisationIndicator.c	\
+	RANAP_NewBSS-To-OldBSS-Information.c	\
+	RANAP_NonSearchingIndication.c	\
+	RANAP_NRTLoadInformationValue.c	\
+	RANAP_NumberOfIuInstances.c	\
+	RANAP_NumberOfSteps.c	\
+	RANAP_Offload-RAB-Parameters.c	\
+	RANAP_Offload-RAB-Parameters-APN.c	\
+	RANAP_Offload-RAB-Parameters-ChargingCharacteristics.c	\
+	RANAP_OldBSS-ToNewBSS-Information.c	\
+	RANAP_OMC-ID.c	\
+	RANAP_Out-Of-UTRAN.c	\
+	RANAP_PagingAreaID.c	\
+	RANAP_PagingCause.c	\
+	RANAP_PDP-TypeInformation.c	\
+	RANAP_PDP-Type.c	\
+	RANAP_PDP-TypeInformation-extension.c	\
+	RANAP_PDP-Type-extension.c	\
+	RANAP_PDUType14FrameSequenceNumber.c	\
+	RANAP_PeriodicLocationInfo.c	\
+	RANAP_PermanentNAS-UE-ID.c	\
+	RANAP_PermittedEncryptionAlgorithms.c	\
+	RANAP_PermittedIntegrityProtectionAlgorithms.c	\
+	RANAP_LABased.c	\
+	RANAP_LAI-List.c	\
+	RANAP_LoggedMDT.c	\
+	RANAP_LoggingInterval.c	\
+	RANAP_LoggingDuration.c	\
+	RANAP_PLMNidentity.c	\
+	RANAP_PLMNs-in-shared-network.c	\
+	RANAP_Port-Number.c	\
+	RANAP_PositioningDataDiscriminator.c	\
+	RANAP_PositioningDataSet.c	\
+	RANAP_PositioningMethodAndUsage.c	\
+	RANAP_PositioningPriority.c	\
+	RANAP_PositionData.c	\
+	RANAP_PositionDataSpecificToGERANIuMode.c	\
+	RANAP_Pre-emptionCapability.c	\
+	RANAP_Pre-emptionVulnerability.c	\
+	RANAP_PriorityLevel.c	\
+	RANAP_Priority-Class-Indicator.c	\
+	RANAP_ProvidedData.c	\
+	RANAP_P-TMSI.c	\
+	RANAP_QueuingAllowed.c	\
+	RANAP_RAB-AsymmetryIndicator.c	\
+	RANAP_RABased.c	\
+	RANAP_RAI-List.c	\
+	RANAP_RABDataVolumeReport.c	\
+	RANAP_RAB-ID.c	\
+	RANAP_RAB-Parameter-ExtendedGuaranteedBitrateList.c	\
+	RANAP_RAB-Parameter-ExtendedMaxBitrateList.c	\
+	RANAP_RAB-Parameter-GuaranteedBitrateList.c	\
+	RANAP_RAB-Parameter-MaxBitrateList.c	\
+	RANAP_RAB-Parameters.c	\
+	RANAP_RABParametersList.c	\
+	RANAP_RAB-SubflowCombinationBitRate.c	\
+	RANAP_RAB-TrCH-Mapping.c	\
+	RANAP_RAB-TrCH-MappingItem.c	\
+	RANAP_RAC.c	\
+	RANAP_RAI.c	\
+	RANAP_RAListofIdleModeUEs.c	\
+	RANAP_NotEmptyRAListofIdleModeUEs.c	\
+	RANAP_RAofIdleModeUEs.c	\
+	RANAP_LAListofIdleModeUEs.c	\
+	RANAP_RAT-Type.c	\
+	RANAP_RateControlAllowed.c	\
+	RANAP_RedirectAttemptFlag.c	\
+	RANAP_RedirectionCompleted.c	\
+	RANAP_RejectCauseValue.c	\
+	RANAP_RelocationRequirement.c	\
+	RANAP_RelocationType.c	\
+	RANAP_RepetitionNumber0.c	\
+	RANAP_RepetitionNumber1.c	\
+	RANAP_ReportArea.c	\
+	RANAP_ReportInterval.c	\
+	RANAP_ReportAmount.c	\
+	RANAP_RequestedGPSAssistanceData.c	\
+	RANAP_RequestedGANSSAssistanceData.c	\
+	RANAP_RequestedLocationRelatedDataType.c	\
+	RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.c	\
+	RANAP_MBMSIPMulticastAddressandAPNlist.c	\
+	RANAP_RequestedMulticastServiceList.c	\
+	RANAP_Requested-RAB-Parameter-Values.c	\
+	RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.c	\
+	RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.c	\
+	RANAP_Requested-RAB-Parameter-MaxBitrateList.c	\
+	RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.c	\
+	RANAP_RequestType.c	\
+	RANAP_ResidualBitErrorRatio.c	\
+	RANAP_ResponseTime.c	\
+	RANAP_RIMInformation.c	\
+	RANAP_RIM-Transfer.c	\
+	RANAP_RIMRoutingAddress.c	\
+	RANAP_RNC-ID.c	\
+	RANAP_RNCTraceInformation.c	\
+	RANAP_RNSAPRelocationParameters.c	\
+	RANAP_RRC-Container.c	\
+	RANAP_RTLoadValue.c	\
+	RANAP_RSRVCC-HO-Indication.c	\
+	RANAP_RSRVCC-Information.c	\
+	RANAP_RSRVCC-Operation-Possible.c	\
+	RANAP_SAC.c	\
+	RANAP_SAI.c	\
+	RANAP_SAPI.c	\
+	RANAP_SessionUpdateID.c	\
+	RANAP_Shared-Network-Information.c	\
+	RANAP_Session-Re-establishment-Indicator.c	\
+	RANAP_SignallingIndication.c	\
+	RANAP_SDU-ErrorRatio.c	\
+	RANAP_SDU-FormatInformationParameters.c	\
+	RANAP_SDU-Parameters.c	\
+	RANAP_SNA-Access-Information.c	\
+	RANAP_SNAC.c	\
+	RANAP_Service-Handover.c	\
+	RANAP_Source-ToTarget-TransparentContainer.c	\
+	RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.c	\
+	RANAP_SourceCellID.c	\
+	RANAP_SourceBSS-ToTargetBSS-TransparentContainer.c	\
+	RANAP_SourceID.c	\
+	RANAP_SourceRNC-ID.c	\
+	RANAP_SourceRNC-ToTargetRNC-TransparentContainer.c	\
+	RANAP_IRAT-Measurement-Configuration.c	\
+	RANAP_IRATmeasurementParameters.c	\
+	RANAP_RSRQ-Type.c	\
+	RANAP_RSRQ-Extension.c	\
+	RANAP_EUTRANFrequencies.c	\
+	RANAP_MeasBand.c	\
+	RANAP_SubscriberProfileIDforRFP.c	\
+	RANAP_SourceStatisticsDescriptor.c	\
+	RANAP_SupportedRAB-ParameterBitrateList.c	\
+	RANAP_SupportedBitrate.c	\
+	RANAP_SourceUTRANCellID.c	\
+	RANAP_SRB-ID.c	\
+	RANAP_SRB-TrCH-Mapping.c	\
+	RANAP_SRB-TrCH-MappingItem.c	\
+	RANAP_SRVCC-HO-Indication.c	\
+	RANAP_SRVCC-Information.c	\
+	RANAP_SRVCC-Operation-Possible.c	\
+	RANAP_SubflowSDU-Size.c	\
+	RANAP_TAC.c	\
+	RANAP_TAI.c	\
+	RANAP_Target-ToSource-TransparentContainer.c	\
+	RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.c	\
+	RANAP_TargetBSS-ToSourceBSS-TransparentContainer.c	\
+	RANAP_TargetCellId.c	\
+	RANAP_TargetID.c	\
+	RANAP_TargetENB-ID.c	\
+	RANAP_TargetRNC-ID.c	\
+	RANAP_TargetRNC-ToSourceRNC-TransparentContainer.c	\
+	RANAP_TBCD-STRING.c	\
+	RANAP_TemporaryUE-ID.c	\
+	RANAP_Time-UE-StayedInCell.c	\
+	RANAP_Time-UE-StayedInCell-EnhancedGranularity.c	\
+	RANAP_TimeToMBMSDataTransfer.c	\
+	RANAP_TimingDifferenceULDL.c	\
+	RANAP_TMGI.c	\
+	RANAP_TMSI.c	\
+	RANAP_TraceDepth.c	\
+	RANAP_TraceInformation.c	\
+	RANAP_TracePropagationParameters.c	\
+	RANAP_TraceRecordingSessionInformation.c	\
+	RANAP_TraceRecordingSessionReference.c	\
+	RANAP_TraceReference.c	\
+	RANAP_TraceType.c	\
+	RANAP_TrafficClass.c	\
+	RANAP_TrafficHandlingPriority.c	\
+	RANAP_TransferDelay.c	\
+	RANAP_UnsuccessfullyTransmittedDataVolume.c	\
+	RANAP_TransportLayerAddress.c	\
+	RANAP_TrCH-ID.c	\
+	RANAP_TrCH-ID-List.c	\
+	RANAP_TriggerID.c	\
+	RANAP_TunnelInformation.c	\
+	RANAP_TypeOfError.c	\
+	RANAP_UE-AggregateMaximumBitRate.c	\
+	RANAP_UE-AggregateMaximumBitRateDownlink.c	\
+	RANAP_UE-AggregateMaximumBitRateUplink.c	\
+	RANAP_UE-History-Information.c	\
+	RANAP_UE-ID.c	\
+	RANAP_UESBI-Iu.c	\
+	RANAP_UESBI-IuA.c	\
+	RANAP_UESBI-IuB.c	\
+	RANAP_UL-GTP-PDU-SequenceNumber.c	\
+	RANAP_UL-N-PDU-SequenceNumber.c	\
+	RANAP_UPInformation.c	\
+	RANAP_UPInitialisationFrame.c	\
+	RANAP_UP-ModeVersions.c	\
+	RANAP_USCH-ID.c	\
+	RANAP_UserPlaneMode.c	\
+	RANAP_UTRAN-CellID.c	\
+	RANAP_VelocityEstimate.c	\
+	RANAP_HorizontalVelocity.c	\
+	RANAP_HorizontalWithVerticalVelocity.c	\
+	RANAP_HorizontalVelocityWithUncertainty.c	\
+	RANAP_HorizontalWithVerticalVelocityAndUncertainty.c	\
+	RANAP_HorizontalSpeedAndBearing.c	\
+	RANAP_VerticalVelocity.c	\
+	RANAP_VerticalSpeedDirection.c	\
+	RANAP_VerticalAccuracyCode.c	\
+	RANAP_VoiceSupportMatchIndicator.c	\
+	RANAP_RANAP-PDU.c	\
+	RANAP_InitiatingMessage.c	\
+	RANAP_SuccessfulOutcome.c	\
+	RANAP_UnsuccessfulOutcome.c	\
+	RANAP_Outcome.c	\
+	RANAP_Iu-ReleaseCommand.c	\
+	RANAP_Iu-ReleaseComplete.c	\
+	RANAP_RelocationRequired.c	\
+	RANAP_RelocationCommand.c	\
+	RANAP_RelocationPreparationFailure.c	\
+	RANAP_RelocationRequest.c	\
+	RANAP_RelocationRequestAcknowledge.c	\
+	RANAP_RelocationFailure.c	\
+	RANAP_RelocationCancel.c	\
+	RANAP_RelocationCancelAcknowledge.c	\
+	RANAP_SRNS-ContextRequest.c	\
+	RANAP_SRNS-ContextResponse.c	\
+	RANAP_SecurityModeCommand.c	\
+	RANAP_SecurityModeComplete.c	\
+	RANAP_SecurityModeReject.c	\
+	RANAP_DataVolumeReportRequest.c	\
+	RANAP_DataVolumeReport.c	\
+	RANAP_Reset.c	\
+	RANAP_ResetAcknowledge.c	\
+	RANAP_RAB-ReleaseRequest.c	\
+	RANAP_Iu-ReleaseRequest.c	\
+	RANAP_RelocationDetect.c	\
+	RANAP_RelocationComplete.c	\
+	RANAP_Paging.c	\
+	RANAP_CommonID.c	\
+	RANAP_CN-InvokeTrace.c	\
+	RANAP_CN-DeactivateTrace.c	\
+	RANAP_LocationReportingControl.c	\
+	RANAP_LocationReport.c	\
+	RANAP_InitialUE-Message.c	\
+	RANAP_DirectTransfer.c	\
+	RANAP_Overload.c	\
+	RANAP_ErrorIndication.c	\
+	RANAP_SRNS-DataForwardCommand.c	\
+	RANAP_ForwardSRNS-Context.c	\
+	RANAP_RAB-AssignmentRequest.c	\
+	RANAP_RAB-AssignmentResponse.c	\
+	RANAP_PrivateMessage.c	\
+	RANAP_ResetResource.c	\
+	RANAP_ResetResourceAcknowledge.c	\
+	RANAP_RANAP-RelocationInformation.c	\
+	RANAP_RAB-ModifyRequest.c	\
+	RANAP_LocationRelatedDataRequest.c	\
+	RANAP_LocationRelatedDataResponse.c	\
+	RANAP_LocationRelatedDataFailure.c	\
+	RANAP_InformationTransferIndication.c	\
+	RANAP_InformationTransferConfirmation.c	\
+	RANAP_InformationTransferFailure.c	\
+	RANAP_UESpecificInformationIndication.c	\
+	RANAP_DirectInformationTransfer.c	\
+	RANAP_UplinkInformationExchangeRequest.c	\
+	RANAP_UplinkInformationExchangeResponse.c	\
+	RANAP_UplinkInformationExchangeFailure.c	\
+	RANAP_MBMSSessionStart.c	\
+	RANAP_MBMSSessionStartResponse.c	\
+	RANAP_MBMSSessionStartFailure.c	\
+	RANAP_MBMSSessionUpdate.c	\
+	RANAP_MBMSSessionUpdateResponse.c	\
+	RANAP_MBMSSessionUpdateFailure.c	\
+	RANAP_MBMSSessionStop.c	\
+	RANAP_MBMSSessionStopResponse.c	\
+	RANAP_MBMSUELinkingRequest.c	\
+	RANAP_MBMSUELinkingResponse.c	\
+	RANAP_MBMSRegistrationRequest.c	\
+	RANAP_MBMSRegistrationResponse.c	\
+	RANAP_MBMSRegistrationFailure.c	\
+	RANAP_MBMSCNDe-RegistrationRequest.c	\
+	RANAP_MBMSCNDe-RegistrationResponse.c	\
+	RANAP_MBMSRABEstablishmentIndication.c	\
+	RANAP_MBMSRABReleaseRequest.c	\
+	RANAP_MBMSRABRelease.c	\
+	RANAP_MBMSRABReleaseFailure.c	\
+	RANAP_EnhancedRelocationCompleteRequest.c	\
+	RANAP_EnhancedRelocationCompleteResponse.c	\
+	RANAP_EnhancedRelocationCompleteFailure.c	\
+	RANAP_EnhancedRelocationCompleteConfirm.c	\
+	RANAP_RANAP-EnhancedRelocationInformationRequest.c	\
+	RANAP_RANAP-EnhancedRelocationInformationResponse.c	\
+	RANAP_SRVCC-CSKeysRequest.c	\
+	RANAP_SRVCC-CSKeysResponse.c	\
+	RANAP_UeRadioCapabilityMatchRequest.c	\
+	RANAP_UeRadioCapabilityMatchResponse.c	\
+	RANAP_IE.c
+
+ASN_MODULE_HEADERS=	\
+	RANAP_Criticality.h	\
+	RANAP_Presence.h	\
+	RANAP_PrivateIE-ID.h	\
+	RANAP_ProcedureCode.h	\
+	RANAP_ProtocolExtensionID.h	\
+	RANAP_ProtocolIE-ID.h	\
+	RANAP_TriggeringMessage.h	\
+	RANAP_IE-Extensions.h	\
+	RANAP_AccuracyFulfilmentIndicator.h	\
+	RANAP_AllocationOrRetentionPriority.h	\
+	RANAP_Alt-RAB-Parameters.h	\
+	RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf.h	\
+	RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrates.h	\
+	RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateList.h	\
+	RANAP_Alt-RAB-Parameter-GuaranteedBitrateInf.h	\
+	RANAP_Alt-RAB-Parameter-GuaranteedBitrateType.h	\
+	RANAP_Alt-RAB-Parameter-GuaranteedBitrates.h	\
+	RANAP_Alt-RAB-Parameter-GuaranteedBitrateList.h	\
+	RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrateInf.h	\
+	RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrates.h	\
+	RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateInf.h	\
+	RANAP_Alt-RAB-Parameter-ExtendedMaxBitrates.h	\
+	RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateList.h	\
+	RANAP_Alt-RAB-Parameter-MaxBitrateInf.h	\
+	RANAP_Alt-RAB-Parameter-MaxBitrateType.h	\
+	RANAP_Alt-RAB-Parameter-MaxBitrates.h	\
+	RANAP_Alt-RAB-Parameter-MaxBitrateList.h	\
+	RANAP_Alt-RAB-Parameter-SupportedMaxBitrateInf.h	\
+	RANAP_Alt-RAB-Parameter-SupportedMaxBitrates.h	\
+	RANAP_AlternativeRABConfigurationRequest.h	\
+	RANAP_APN.h	\
+	RANAP_AreaIdentity.h	\
+	RANAP_Ass-RAB-Parameters.h	\
+	RANAP_Ass-RAB-Parameter-ExtendedGuaranteedBitrateList.h	\
+	RANAP_Ass-RAB-Parameter-ExtendedMaxBitrateList.h	\
+	RANAP_Ass-RAB-Parameter-GuaranteedBitrateList.h	\
+	RANAP_Ass-RAB-Parameter-MaxBitrateList.h	\
+	RANAP_AuthorisedPLMNs.h	\
+	RANAP_AuthorisedSNAs.h	\
+	RANAP_BindingID.h	\
+	RANAP_BroadcastAssistanceDataDecipheringKeys.h	\
+	RANAP_Cause.h	\
+	RANAP_CauseMisc.h	\
+	RANAP_CauseNAS.h	\
+	RANAP_CauseProtocol.h	\
+	RANAP_CauseRadioNetwork.h	\
+	RANAP_CauseRadioNetworkExtension.h	\
+	RANAP_CauseNon-Standard.h	\
+	RANAP_CauseTransmissionNetwork.h	\
+	RANAP_Cell-Access-Mode.h	\
+	RANAP_CellBased.h	\
+	RANAP_CellIdList.h	\
+	RANAP_Cell-Id.h	\
+	RANAP_Cell-Capacity-Class-Value.h	\
+	RANAP_CellLoadInformation.h	\
+	RANAP_CellLoadInformationGroup.h	\
+	RANAP_CellType.h	\
+	RANAP_ClientType.h	\
+	RANAP_CriticalityDiagnostics.h	\
+	RANAP_CriticalityDiagnostics-IE-List.h	\
+	RANAP_MessageStructure.h	\
+	RANAP_CGI.h	\
+	RANAP_ChosenEncryptionAlgorithm.h	\
+	RANAP_ChosenIntegrityProtectionAlgorithm.h	\
+	RANAP_CI.h	\
+	RANAP_ClassmarkInformation2.h	\
+	RANAP_ClassmarkInformation3.h	\
+	RANAP_CN-DomainIndicator.h	\
+	RANAP_CN-ID.h	\
+	RANAP_Correlation-ID.h	\
+	RANAP_CSFB-Information.h	\
+	RANAP_CSG-Id.h	\
+	RANAP_CSG-Id-List.h	\
+	RANAP_CSG-Membership-Status.h	\
+	RANAP_DataPDUType.h	\
+	RANAP_DataVolumeReference.h	\
+	RANAP_DataVolumeReportingIndication.h	\
+	RANAP_DCH-ID.h	\
+	RANAP_DeliveryOfErroneousSDU.h	\
+	RANAP_DeliveryOrder.h	\
+	RANAP_DeltaRAListofIdleModeUEs.h	\
+	RANAP_NewRAListofIdleModeUEs.h	\
+	RANAP_RAListwithNoIdleModeUEsAnyMore.h	\
+	RANAP_ForwardingIndication.h	\
+	RANAP_DL-GTP-PDU-SequenceNumber.h	\
+	RANAP_DL-N-PDU-SequenceNumber.h	\
+	RANAP_D-RNTI.h	\
+	RANAP_DRX-CycleLengthCoefficient.h	\
+	RANAP_DSCH-ID.h	\
+	RANAP_EARFCN-Extended.h	\
+	RANAP_E-DCH-MAC-d-Flow-ID.h	\
+	RANAP_ENB-ID.h	\
+	RANAP_EncryptionAlgorithm.h	\
+	RANAP_EncryptionInformation.h	\
+	RANAP_EncryptionKey.h	\
+	RANAP_End-Of-CSFB.h	\
+	RANAP_EquipmentsToBeTraced.h	\
+	RANAP_E-UTRAN-Service-Handover.h	\
+	RANAP_Event.h	\
+	RANAP_Event1F-Parameters.h	\
+	RANAP_Event1I-Parameters.h	\
+	RANAP_ExtendedGuaranteedBitrate.h	\
+	RANAP_ExtendedMaxBitrate.h	\
+	RANAP_ExtendedRNC-ID.h	\
+	RANAP_FrameSequenceNumber.h	\
+	RANAP_FrequenceLayerConvergenceFlag.h	\
+	RANAP_GANSS-PositioningDataSet.h	\
+	RANAP_GANSS-PositioningMethodAndUsage.h	\
+	RANAP_GeographicalArea.h	\
+	RANAP_GeographicalCoordinates.h	\
+	RANAP_GA-AltitudeAndDirection.h	\
+	RANAP_GA-EllipsoidArc.h	\
+	RANAP_GA-Point.h	\
+	RANAP_GA-PointWithAltitude.h	\
+	RANAP_GA-PointWithAltitudeAndUncertaintyEllipsoid.h	\
+	RANAP_GA-PointWithUnCertainty.h	\
+	RANAP_GA-PointWithUnCertaintyEllipse.h	\
+	RANAP_GA-Polygon.h	\
+	RANAP_GA-UncertaintyEllipse.h	\
+	RANAP_GERAN-BSC-Container.h	\
+	RANAP_GERAN-Cell-ID.h	\
+	RANAP_GERAN-Classmark.h	\
+	RANAP_GlobalCN-ID.h	\
+	RANAP_GlobalRNC-ID.h	\
+	RANAP_GTP-TEI.h	\
+	RANAP_GuaranteedBitrate.h	\
+	RANAP_HigherBitratesThan16MbpsFlag.h	\
+	RANAP_HS-DSCH-MAC-d-Flow-ID.h	\
+	RANAP_IMEI.h	\
+	RANAP_IMEIGroup.h	\
+	RANAP_IMEIList.h	\
+	RANAP_IMEISV.h	\
+	RANAP_IMEISVGroup.h	\
+	RANAP_IMEISVList.h	\
+	RANAP_ImmediateMDT.h	\
+	RANAP_IMSI.h	\
+	RANAP_IncludeVelocity.h	\
+	RANAP_InformationExchangeID.h	\
+	RANAP_InformationExchangeType.h	\
+	RANAP_InformationRequested.h	\
+	RANAP_InformationRequestType.h	\
+	RANAP_InformationTransferID.h	\
+	RANAP_InformationTransferType.h	\
+	RANAP_IntegrityProtectionAlgorithm.h	\
+	RANAP_IntegrityProtectionInformation.h	\
+	RANAP_IntegrityProtectionKey.h	\
+	RANAP_InterSystemInformationTransferType.h	\
+	RANAP_InterSystemInformation-TransparentContainer.h	\
+	RANAP_IPMulticastAddress.h	\
+	RANAP_IuSignallingConnectionIdentifier.h	\
+	RANAP_IuTransportAssociation.h	\
+	RANAP_KeyStatus.h	\
+	RANAP_LA-LIST.h	\
+	RANAP_LAC.h	\
+	RANAP_LAI.h	\
+	RANAP_LastKnownServiceArea.h	\
+	RANAP_LastVisitedUTRANCell-Item.h	\
+	RANAP_LHN-ID.h	\
+	RANAP_Links-to-log.h	\
+	RANAP_ListOF-SNAs.h	\
+	RANAP_ListOfInterfacesToTrace.h	\
+	RANAP_InterfacesToTraceItem.h	\
+	RANAP_LoadValue.h	\
+	RANAP_LocationRelatedDataRequestType.h	\
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode.h	\
+	RANAP_LocationReportingTransferInformation.h	\
+	RANAP_ReportChangeOfSAI.h	\
+	RANAP_PeriodicReportingIndicator.h	\
+	RANAP_DirectReportingIndicator.h	\
+	RANAP_L3-Information.h	\
+	RANAP_M1Report.h	\
+	RANAP_M2Report.h	\
+	RANAP_M4Report.h	\
+	RANAP_M4-Collection-Parameters.h	\
+	RANAP_M4-Period.h	\
+	RANAP_M4-Threshold.h	\
+	RANAP_M5Report.h	\
+	RANAP_M5-Period.h	\
+	RANAP_M6Report.h	\
+	RANAP_M6-Period.h	\
+	RANAP_M7Report.h	\
+	RANAP_M7-Period.h	\
+	RANAP_Management-Based-MDT-Allowed.h	\
+	RANAP_MaxBitrate.h	\
+	RANAP_MaxSDU-Size.h	\
+	RANAP_MBMS-PTP-RAB-ID.h	\
+	RANAP_MBMSBearerServiceType.h	\
+	RANAP_MBMSCNDe-Registration.h	\
+	RANAP_MBMSCountingInformation.h	\
+	RANAP_MBMSHCIndicator.h	\
+	RANAP_MBMSIPMulticastAddressandAPNRequest.h	\
+	RANAP_MBMSLinkingInformation.h	\
+	RANAP_MBMSRegistrationRequestType.h	\
+	RANAP_MBMSServiceArea.h	\
+	RANAP_MBMSSessionDuration.h	\
+	RANAP_MBMSSessionIdentity.h	\
+	RANAP_MBMSSessionRepetitionNumber.h	\
+	RANAP_MDT-Activation.h	\
+	RANAP_MDTAreaScope.h	\
+	RANAP_MDT-Configuration.h	\
+	RANAP_MDTMode.h	\
+	RANAP_MDT-PLMN-List.h	\
+	RANAP_MDT-Report-Parameters.h	\
+	RANAP_MeasurementQuantity.h	\
+	RANAP_MeasurementsToActivate.h	\
+	RANAP_MSISDN.h	\
+	RANAP_NAS-PDU.h	\
+	RANAP_NAS-SequenceNumber.h	\
+	RANAP_NAS-SynchronisationIndicator.h	\
+	RANAP_NewBSS-To-OldBSS-Information.h	\
+	RANAP_NonSearchingIndication.h	\
+	RANAP_NRTLoadInformationValue.h	\
+	RANAP_NumberOfIuInstances.h	\
+	RANAP_NumberOfSteps.h	\
+	RANAP_Offload-RAB-Parameters.h	\
+	RANAP_Offload-RAB-Parameters-APN.h	\
+	RANAP_Offload-RAB-Parameters-ChargingCharacteristics.h	\
+	RANAP_OldBSS-ToNewBSS-Information.h	\
+	RANAP_OMC-ID.h	\
+	RANAP_Out-Of-UTRAN.h	\
+	RANAP_PagingAreaID.h	\
+	RANAP_PagingCause.h	\
+	RANAP_PDP-TypeInformation.h	\
+	RANAP_PDP-Type.h	\
+	RANAP_PDP-TypeInformation-extension.h	\
+	RANAP_PDP-Type-extension.h	\
+	RANAP_PDUType14FrameSequenceNumber.h	\
+	RANAP_PeriodicLocationInfo.h	\
+	RANAP_PermanentNAS-UE-ID.h	\
+	RANAP_PermittedEncryptionAlgorithms.h	\
+	RANAP_PermittedIntegrityProtectionAlgorithms.h	\
+	RANAP_LABased.h	\
+	RANAP_LAI-List.h	\
+	RANAP_LoggedMDT.h	\
+	RANAP_LoggingInterval.h	\
+	RANAP_LoggingDuration.h	\
+	RANAP_PLMNidentity.h	\
+	RANAP_PLMNs-in-shared-network.h	\
+	RANAP_Port-Number.h	\
+	RANAP_PositioningDataDiscriminator.h	\
+	RANAP_PositioningDataSet.h	\
+	RANAP_PositioningMethodAndUsage.h	\
+	RANAP_PositioningPriority.h	\
+	RANAP_PositionData.h	\
+	RANAP_PositionDataSpecificToGERANIuMode.h	\
+	RANAP_Pre-emptionCapability.h	\
+	RANAP_Pre-emptionVulnerability.h	\
+	RANAP_PriorityLevel.h	\
+	RANAP_Priority-Class-Indicator.h	\
+	RANAP_ProvidedData.h	\
+	RANAP_P-TMSI.h	\
+	RANAP_QueuingAllowed.h	\
+	RANAP_RAB-AsymmetryIndicator.h	\
+	RANAP_RABased.h	\
+	RANAP_RAI-List.h	\
+	RANAP_RABDataVolumeReport.h	\
+	RANAP_RAB-ID.h	\
+	RANAP_RAB-Parameter-ExtendedGuaranteedBitrateList.h	\
+	RANAP_RAB-Parameter-ExtendedMaxBitrateList.h	\
+	RANAP_RAB-Parameter-GuaranteedBitrateList.h	\
+	RANAP_RAB-Parameter-MaxBitrateList.h	\
+	RANAP_RAB-Parameters.h	\
+	RANAP_RABParametersList.h	\
+	RANAP_RAB-SubflowCombinationBitRate.h	\
+	RANAP_RAB-TrCH-Mapping.h	\
+	RANAP_RAB-TrCH-MappingItem.h	\
+	RANAP_RAC.h	\
+	RANAP_RAI.h	\
+	RANAP_RAListofIdleModeUEs.h	\
+	RANAP_NotEmptyRAListofIdleModeUEs.h	\
+	RANAP_RAofIdleModeUEs.h	\
+	RANAP_LAListofIdleModeUEs.h	\
+	RANAP_RAT-Type.h	\
+	RANAP_RateControlAllowed.h	\
+	RANAP_RedirectAttemptFlag.h	\
+	RANAP_RedirectionCompleted.h	\
+	RANAP_RejectCauseValue.h	\
+	RANAP_RelocationRequirement.h	\
+	RANAP_RelocationType.h	\
+	RANAP_RepetitionNumber0.h	\
+	RANAP_RepetitionNumber1.h	\
+	RANAP_ReportArea.h	\
+	RANAP_ReportInterval.h	\
+	RANAP_ReportAmount.h	\
+	RANAP_RequestedGPSAssistanceData.h	\
+	RANAP_RequestedGANSSAssistanceData.h	\
+	RANAP_RequestedLocationRelatedDataType.h	\
+	RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.h	\
+	RANAP_MBMSIPMulticastAddressandAPNlist.h	\
+	RANAP_RequestedMulticastServiceList.h	\
+	RANAP_Requested-RAB-Parameter-Values.h	\
+	RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.h	\
+	RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.h	\
+	RANAP_Requested-RAB-Parameter-MaxBitrateList.h	\
+	RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.h	\
+	RANAP_RequestType.h	\
+	RANAP_ResidualBitErrorRatio.h	\
+	RANAP_ResponseTime.h	\
+	RANAP_RIMInformation.h	\
+	RANAP_RIM-Transfer.h	\
+	RANAP_RIMRoutingAddress.h	\
+	RANAP_RNC-ID.h	\
+	RANAP_RNCTraceInformation.h	\
+	RANAP_RNSAPRelocationParameters.h	\
+	RANAP_RRC-Container.h	\
+	RANAP_RTLoadValue.h	\
+	RANAP_RSRVCC-HO-Indication.h	\
+	RANAP_RSRVCC-Information.h	\
+	RANAP_RSRVCC-Operation-Possible.h	\
+	RANAP_SAC.h	\
+	RANAP_SAI.h	\
+	RANAP_SAPI.h	\
+	RANAP_SessionUpdateID.h	\
+	RANAP_Shared-Network-Information.h	\
+	RANAP_Session-Re-establishment-Indicator.h	\
+	RANAP_SignallingIndication.h	\
+	RANAP_SDU-ErrorRatio.h	\
+	RANAP_SDU-FormatInformationParameters.h	\
+	RANAP_SDU-Parameters.h	\
+	RANAP_SNA-Access-Information.h	\
+	RANAP_SNAC.h	\
+	RANAP_Service-Handover.h	\
+	RANAP_Source-ToTarget-TransparentContainer.h	\
+	RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.h	\
+	RANAP_SourceCellID.h	\
+	RANAP_SourceBSS-ToTargetBSS-TransparentContainer.h	\
+	RANAP_SourceID.h	\
+	RANAP_SourceRNC-ID.h	\
+	RANAP_SourceRNC-ToTargetRNC-TransparentContainer.h	\
+	RANAP_IRAT-Measurement-Configuration.h	\
+	RANAP_IRATmeasurementParameters.h	\
+	RANAP_RSRQ-Type.h	\
+	RANAP_RSRQ-Extension.h	\
+	RANAP_EUTRANFrequencies.h	\
+	RANAP_MeasBand.h	\
+	RANAP_SubscriberProfileIDforRFP.h	\
+	RANAP_SourceStatisticsDescriptor.h	\
+	RANAP_SupportedRAB-ParameterBitrateList.h	\
+	RANAP_SupportedBitrate.h	\
+	RANAP_SourceUTRANCellID.h	\
+	RANAP_SRB-ID.h	\
+	RANAP_SRB-TrCH-Mapping.h	\
+	RANAP_SRB-TrCH-MappingItem.h	\
+	RANAP_SRVCC-HO-Indication.h	\
+	RANAP_SRVCC-Information.h	\
+	RANAP_SRVCC-Operation-Possible.h	\
+	RANAP_SubflowSDU-Size.h	\
+	RANAP_TAC.h	\
+	RANAP_TAI.h	\
+	RANAP_Target-ToSource-TransparentContainer.h	\
+	RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.h	\
+	RANAP_TargetBSS-ToSourceBSS-TransparentContainer.h	\
+	RANAP_TargetCellId.h	\
+	RANAP_TargetID.h	\
+	RANAP_TargetENB-ID.h	\
+	RANAP_TargetRNC-ID.h	\
+	RANAP_TargetRNC-ToSourceRNC-TransparentContainer.h	\
+	RANAP_TBCD-STRING.h	\
+	RANAP_TemporaryUE-ID.h	\
+	RANAP_Time-UE-StayedInCell.h	\
+	RANAP_Time-UE-StayedInCell-EnhancedGranularity.h	\
+	RANAP_TimeToMBMSDataTransfer.h	\
+	RANAP_TimingDifferenceULDL.h	\
+	RANAP_TMGI.h	\
+	RANAP_TMSI.h	\
+	RANAP_TraceDepth.h	\
+	RANAP_TraceInformation.h	\
+	RANAP_TracePropagationParameters.h	\
+	RANAP_TraceRecordingSessionInformation.h	\
+	RANAP_TraceRecordingSessionReference.h	\
+	RANAP_TraceReference.h	\
+	RANAP_TraceType.h	\
+	RANAP_TrafficClass.h	\
+	RANAP_TrafficHandlingPriority.h	\
+	RANAP_TransferDelay.h	\
+	RANAP_UnsuccessfullyTransmittedDataVolume.h	\
+	RANAP_TransportLayerAddress.h	\
+	RANAP_TrCH-ID.h	\
+	RANAP_TrCH-ID-List.h	\
+	RANAP_TriggerID.h	\
+	RANAP_TunnelInformation.h	\
+	RANAP_TypeOfError.h	\
+	RANAP_UE-AggregateMaximumBitRate.h	\
+	RANAP_UE-AggregateMaximumBitRateDownlink.h	\
+	RANAP_UE-AggregateMaximumBitRateUplink.h	\
+	RANAP_UE-History-Information.h	\
+	RANAP_UE-ID.h	\
+	RANAP_UESBI-Iu.h	\
+	RANAP_UESBI-IuA.h	\
+	RANAP_UESBI-IuB.h	\
+	RANAP_UL-GTP-PDU-SequenceNumber.h	\
+	RANAP_UL-N-PDU-SequenceNumber.h	\
+	RANAP_UPInformation.h	\
+	RANAP_UPInitialisationFrame.h	\
+	RANAP_UP-ModeVersions.h	\
+	RANAP_USCH-ID.h	\
+	RANAP_UserPlaneMode.h	\
+	RANAP_UTRAN-CellID.h	\
+	RANAP_VelocityEstimate.h	\
+	RANAP_HorizontalVelocity.h	\
+	RANAP_HorizontalWithVerticalVelocity.h	\
+	RANAP_HorizontalVelocityWithUncertainty.h	\
+	RANAP_HorizontalWithVerticalVelocityAndUncertainty.h	\
+	RANAP_HorizontalSpeedAndBearing.h	\
+	RANAP_VerticalVelocity.h	\
+	RANAP_VerticalSpeedDirection.h	\
+	RANAP_VerticalAccuracyCode.h	\
+	RANAP_VoiceSupportMatchIndicator.h	\
+	RANAP_RANAP-PDU.h	\
+	RANAP_InitiatingMessage.h	\
+	RANAP_SuccessfulOutcome.h	\
+	RANAP_UnsuccessfulOutcome.h	\
+	RANAP_Outcome.h	\
+	RANAP_Iu-ReleaseCommand.h	\
+	RANAP_Iu-ReleaseComplete.h	\
+	RANAP_RelocationRequired.h	\
+	RANAP_RelocationCommand.h	\
+	RANAP_RelocationPreparationFailure.h	\
+	RANAP_RelocationRequest.h	\
+	RANAP_RelocationRequestAcknowledge.h	\
+	RANAP_RelocationFailure.h	\
+	RANAP_RelocationCancel.h	\
+	RANAP_RelocationCancelAcknowledge.h	\
+	RANAP_SRNS-ContextRequest.h	\
+	RANAP_SRNS-ContextResponse.h	\
+	RANAP_SecurityModeCommand.h	\
+	RANAP_SecurityModeComplete.h	\
+	RANAP_SecurityModeReject.h	\
+	RANAP_DataVolumeReportRequest.h	\
+	RANAP_DataVolumeReport.h	\
+	RANAP_Reset.h	\
+	RANAP_ResetAcknowledge.h	\
+	RANAP_RAB-ReleaseRequest.h	\
+	RANAP_Iu-ReleaseRequest.h	\
+	RANAP_RelocationDetect.h	\
+	RANAP_RelocationComplete.h	\
+	RANAP_Paging.h	\
+	RANAP_CommonID.h	\
+	RANAP_CN-InvokeTrace.h	\
+	RANAP_CN-DeactivateTrace.h	\
+	RANAP_LocationReportingControl.h	\
+	RANAP_LocationReport.h	\
+	RANAP_InitialUE-Message.h	\
+	RANAP_DirectTransfer.h	\
+	RANAP_Overload.h	\
+	RANAP_ErrorIndication.h	\
+	RANAP_SRNS-DataForwardCommand.h	\
+	RANAP_ForwardSRNS-Context.h	\
+	RANAP_RAB-AssignmentRequest.h	\
+	RANAP_RAB-AssignmentResponse.h	\
+	RANAP_PrivateMessage.h	\
+	RANAP_ResetResource.h	\
+	RANAP_ResetResourceAcknowledge.h	\
+	RANAP_RANAP-RelocationInformation.h	\
+	RANAP_RAB-ModifyRequest.h	\
+	RANAP_LocationRelatedDataRequest.h	\
+	RANAP_LocationRelatedDataResponse.h	\
+	RANAP_LocationRelatedDataFailure.h	\
+	RANAP_InformationTransferIndication.h	\
+	RANAP_InformationTransferConfirmation.h	\
+	RANAP_InformationTransferFailure.h	\
+	RANAP_UESpecificInformationIndication.h	\
+	RANAP_DirectInformationTransfer.h	\
+	RANAP_UplinkInformationExchangeRequest.h	\
+	RANAP_UplinkInformationExchangeResponse.h	\
+	RANAP_UplinkInformationExchangeFailure.h	\
+	RANAP_MBMSSessionStart.h	\
+	RANAP_MBMSSessionStartResponse.h	\
+	RANAP_MBMSSessionStartFailure.h	\
+	RANAP_MBMSSessionUpdate.h	\
+	RANAP_MBMSSessionUpdateResponse.h	\
+	RANAP_MBMSSessionUpdateFailure.h	\
+	RANAP_MBMSSessionStop.h	\
+	RANAP_MBMSSessionStopResponse.h	\
+	RANAP_MBMSUELinkingRequest.h	\
+	RANAP_MBMSUELinkingResponse.h	\
+	RANAP_MBMSRegistrationRequest.h	\
+	RANAP_MBMSRegistrationResponse.h	\
+	RANAP_MBMSRegistrationFailure.h	\
+	RANAP_MBMSCNDe-RegistrationRequest.h	\
+	RANAP_MBMSCNDe-RegistrationResponse.h	\
+	RANAP_MBMSRABEstablishmentIndication.h	\
+	RANAP_MBMSRABReleaseRequest.h	\
+	RANAP_MBMSRABRelease.h	\
+	RANAP_MBMSRABReleaseFailure.h	\
+	RANAP_EnhancedRelocationCompleteRequest.h	\
+	RANAP_EnhancedRelocationCompleteResponse.h	\
+	RANAP_EnhancedRelocationCompleteFailure.h	\
+	RANAP_EnhancedRelocationCompleteConfirm.h	\
+	RANAP_RANAP-EnhancedRelocationInformationRequest.h	\
+	RANAP_RANAP-EnhancedRelocationInformationResponse.h	\
+	RANAP_SRVCC-CSKeysRequest.h	\
+	RANAP_SRVCC-CSKeysResponse.h	\
+	RANAP_UeRadioCapabilityMatchRequest.h	\
+	RANAP_UeRadioCapabilityMatchResponse.h	\
+	RANAP_IE.h
+
+
+lib_LTLIBRARIES=libosmo-asn1-ranap.la
+libsomething_la_SOURCES=$(ASN_MODULE_SOURCES)
+
+# Remove the lines below to convert it into a pure .am file
+CFLAGS += -I. `pkg-config --cflags libasn1c`
+OBJS=${ASN_MODULE_SOURCES:.c=.o} ${ASN_CONVERTER_SOURCES:.c=.o}
+
+all: libosmo-asn1-ranap.a
+
+libosmo-asn1-ranap.a: ${OBJS}
+	$(AR) r $@ $^
+
+.SUFFIXES:
+.SUFFIXES: .c .o
+
+.c.o:
+	$(CC) $(CFLAGS) -o $@ -c $<
+
+clean:
+	rm -f libosmo-asn1-ranap.a
+	rm -f $(OBJS)
+
+clean-srcs:
+	@rm -f *.c *.h Makefile.am.sample
+
+regen: regenerate-from-asn1-source
+
+regenerate-from-asn1-source: clean clean-srcs
+	ASN1C_PREFIX="RANAP_" asn1c -gen-PER ../../asn1/ranap/RANAP-CommonDataTypes.asn ../../asn1/ranap/RANAP-Constants.asn ../../asn1/ranap/RANAP-IEs.asn ../../asn1/ranap/RANAP-PDU.asn
+	# remove the local copy of the runtime code
+	@rm ANY.* BOOLEAN.* INTEGER.* NativeEnumerated.* NativeInteger.* NULL.* OBJECT_IDENTIFIER.* asn_* OCTET_STRING.* converter-sample.c per_* xer_* constr* der_* ber_* BIT_STRING.*
+	# some fixups in erroneous code that asn1c generates
+	sed -i '6i#include <constr_CHOICE.h>' RANAP_ChosenEncryptionAlgorithm.h RANAP_ChosenIntegrityProtectionAlgorithm.h RANAP_IMSI.h RANAP_PLMNidentity.h
+	sed -i 's/Member/MemberA/' RANAP_LA-LIST.[ch] RANAP_SDU-Parameters.[ch] RANAP_RABParametersList.[ch]
diff --git a/src/ranap/RANAP_APN.c b/src/ranap/RANAP_APN.c
new file mode 100644
index 0000000..9058eaf
--- /dev/null
+++ b/src/ranap/RANAP_APN.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_APN.h"
+
+int
+RANAP_APN_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 1l && size <= 255l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_APN_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_APN_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_APN_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_APN_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_APN_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_APN_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_APN_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_APN_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_APN_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_APN_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_APN_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_APN_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_APN_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_APN_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_APN_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_APN_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_APN_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_APN_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_APN_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_APN_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_APN_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_APN_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 8,  8,  1l,  255l }	/* (SIZE(1..255)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_APN_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_APN = {
+	"RANAP_APN",
+	"RANAP_APN",
+	RANAP_APN_free,
+	RANAP_APN_print,
+	RANAP_APN_constraint,
+	RANAP_APN_decode_ber,
+	RANAP_APN_encode_der,
+	RANAP_APN_decode_xer,
+	RANAP_APN_encode_xer,
+	RANAP_APN_decode_uper,
+	RANAP_APN_encode_uper,
+	RANAP_APN_decode_aper,
+	RANAP_APN_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_APN_tags_1,
+	sizeof(asn_DEF_RANAP_APN_tags_1)
+		/sizeof(asn_DEF_RANAP_APN_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_APN_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_APN_tags_1)
+		/sizeof(asn_DEF_RANAP_APN_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_APN_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_APN.h b/src/ranap/RANAP_APN.h
new file mode 100644
index 0000000..ac158e1
--- /dev/null
+++ b/src/ranap/RANAP_APN.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_APN_H_
+#define	_RANAP_APN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_APN */
+typedef OCTET_STRING_t	 RANAP_APN_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_APN;
+asn_struct_free_f RANAP_APN_free;
+asn_struct_print_f RANAP_APN_print;
+asn_constr_check_f RANAP_APN_constraint;
+ber_type_decoder_f RANAP_APN_decode_ber;
+der_type_encoder_f RANAP_APN_encode_der;
+xer_type_decoder_f RANAP_APN_decode_xer;
+xer_type_encoder_f RANAP_APN_encode_xer;
+per_type_decoder_f RANAP_APN_decode_uper;
+per_type_encoder_f RANAP_APN_encode_uper;
+per_type_decoder_f RANAP_APN_decode_aper;
+per_type_encoder_f RANAP_APN_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_APN_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_AccuracyFulfilmentIndicator.c b/src/ranap/RANAP_AccuracyFulfilmentIndicator.c
new file mode 100644
index 0000000..9b190b1
--- /dev/null
+++ b/src/ranap/RANAP_AccuracyFulfilmentIndicator.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_AccuracyFulfilmentIndicator.h"
+
+int
+RANAP_AccuracyFulfilmentIndicator_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_AccuracyFulfilmentIndicator_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_AccuracyFulfilmentIndicator_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_AccuracyFulfilmentIndicator_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_AccuracyFulfilmentIndicator_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_AccuracyFulfilmentIndicator_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_AccuracyFulfilmentIndicator_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_AccuracyFulfilmentIndicator_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_AccuracyFulfilmentIndicator_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_AccuracyFulfilmentIndicator_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_AccuracyFulfilmentIndicator_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_AccuracyFulfilmentIndicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_AccuracyFulfilmentIndicator_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_AccuracyFulfilmentIndicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_AccuracyFulfilmentIndicator_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_AccuracyFulfilmentIndicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_AccuracyFulfilmentIndicator_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_AccuracyFulfilmentIndicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_AccuracyFulfilmentIndicator_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_AccuracyFulfilmentIndicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_AccuracyFulfilmentIndicator_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_AccuracyFulfilmentIndicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_AccuracyFulfilmentIndicator_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_AccuracyFulfilmentIndicator_value2enum_1[] = {
+	{ 0,	28,	"requested-Accuracy-Fulfilled" },
+	{ 1,	32,	"requested-Accuracy-Not-Fulfilled" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_AccuracyFulfilmentIndicator_enum2value_1[] = {
+	0,	/* requested-Accuracy-Fulfilled(0) */
+	1	/* requested-Accuracy-Not-Fulfilled(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_AccuracyFulfilmentIndicator_specs_1 = {
+	asn_MAP_RANAP_AccuracyFulfilmentIndicator_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_AccuracyFulfilmentIndicator_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_AccuracyFulfilmentIndicator_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_AccuracyFulfilmentIndicator = {
+	"RANAP_AccuracyFulfilmentIndicator",
+	"RANAP_AccuracyFulfilmentIndicator",
+	RANAP_AccuracyFulfilmentIndicator_free,
+	RANAP_AccuracyFulfilmentIndicator_print,
+	RANAP_AccuracyFulfilmentIndicator_constraint,
+	RANAP_AccuracyFulfilmentIndicator_decode_ber,
+	RANAP_AccuracyFulfilmentIndicator_encode_der,
+	RANAP_AccuracyFulfilmentIndicator_decode_xer,
+	RANAP_AccuracyFulfilmentIndicator_encode_xer,
+	RANAP_AccuracyFulfilmentIndicator_decode_uper,
+	RANAP_AccuracyFulfilmentIndicator_encode_uper,
+	RANAP_AccuracyFulfilmentIndicator_decode_aper,
+	RANAP_AccuracyFulfilmentIndicator_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_AccuracyFulfilmentIndicator_tags_1,
+	sizeof(asn_DEF_RANAP_AccuracyFulfilmentIndicator_tags_1)
+		/sizeof(asn_DEF_RANAP_AccuracyFulfilmentIndicator_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_AccuracyFulfilmentIndicator_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_AccuracyFulfilmentIndicator_tags_1)
+		/sizeof(asn_DEF_RANAP_AccuracyFulfilmentIndicator_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_AccuracyFulfilmentIndicator_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_AccuracyFulfilmentIndicator_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_AccuracyFulfilmentIndicator.h b/src/ranap/RANAP_AccuracyFulfilmentIndicator.h
new file mode 100644
index 0000000..e95d0b9
--- /dev/null
+++ b/src/ranap/RANAP_AccuracyFulfilmentIndicator.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_AccuracyFulfilmentIndicator_H_
+#define	_RANAP_AccuracyFulfilmentIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_AccuracyFulfilmentIndicator {
+	RANAP_AccuracyFulfilmentIndicator_requested_Accuracy_Fulfilled	= 0,
+	RANAP_AccuracyFulfilmentIndicator_requested_Accuracy_Not_Fulfilled	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_AccuracyFulfilmentIndicator;
+
+/* RANAP_AccuracyFulfilmentIndicator */
+typedef long	 RANAP_AccuracyFulfilmentIndicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_AccuracyFulfilmentIndicator;
+asn_struct_free_f RANAP_AccuracyFulfilmentIndicator_free;
+asn_struct_print_f RANAP_AccuracyFulfilmentIndicator_print;
+asn_constr_check_f RANAP_AccuracyFulfilmentIndicator_constraint;
+ber_type_decoder_f RANAP_AccuracyFulfilmentIndicator_decode_ber;
+der_type_encoder_f RANAP_AccuracyFulfilmentIndicator_encode_der;
+xer_type_decoder_f RANAP_AccuracyFulfilmentIndicator_decode_xer;
+xer_type_encoder_f RANAP_AccuracyFulfilmentIndicator_encode_xer;
+per_type_decoder_f RANAP_AccuracyFulfilmentIndicator_decode_uper;
+per_type_encoder_f RANAP_AccuracyFulfilmentIndicator_encode_uper;
+per_type_decoder_f RANAP_AccuracyFulfilmentIndicator_decode_aper;
+per_type_encoder_f RANAP_AccuracyFulfilmentIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_AccuracyFulfilmentIndicator_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_AllocationOrRetentionPriority.c b/src/ranap/RANAP_AllocationOrRetentionPriority.c
new file mode 100644
index 0000000..08c7d69
--- /dev/null
+++ b/src/ranap/RANAP_AllocationOrRetentionPriority.c
@@ -0,0 +1,103 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_AllocationOrRetentionPriority.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_AllocationOrRetentionPriority_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_AllocationOrRetentionPriority, priorityLevel),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PriorityLevel,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"priorityLevel"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_AllocationOrRetentionPriority, pre_emptionCapability),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Pre_emptionCapability,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pre-emptionCapability"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_AllocationOrRetentionPriority, pre_emptionVulnerability),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Pre_emptionVulnerability,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pre-emptionVulnerability"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_AllocationOrRetentionPriority, queuingAllowed),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_QueuingAllowed,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"queuingAllowed"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_AllocationOrRetentionPriority, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_AllocationOrRetentionPriority_oms_1[] = { 4 };
+static const ber_tlv_tag_t asn_DEF_RANAP_AllocationOrRetentionPriority_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_AllocationOrRetentionPriority_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* priorityLevel */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pre-emptionCapability */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pre-emptionVulnerability */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* queuingAllowed */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_AllocationOrRetentionPriority_specs_1 = {
+	sizeof(struct RANAP_AllocationOrRetentionPriority),
+	offsetof(struct RANAP_AllocationOrRetentionPriority, _asn_ctx),
+	asn_MAP_RANAP_AllocationOrRetentionPriority_tag2el_1,
+	5,	/* Count of tags in the map */
+	asn_MAP_RANAP_AllocationOrRetentionPriority_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	4,	/* Start extensions */
+	6	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_AllocationOrRetentionPriority = {
+	"RANAP_AllocationOrRetentionPriority",
+	"RANAP_AllocationOrRetentionPriority",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_AllocationOrRetentionPriority_tags_1,
+	sizeof(asn_DEF_RANAP_AllocationOrRetentionPriority_tags_1)
+		/sizeof(asn_DEF_RANAP_AllocationOrRetentionPriority_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_AllocationOrRetentionPriority_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_AllocationOrRetentionPriority_tags_1)
+		/sizeof(asn_DEF_RANAP_AllocationOrRetentionPriority_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_AllocationOrRetentionPriority_1,
+	5,	/* Elements count */
+	&asn_SPC_RANAP_AllocationOrRetentionPriority_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_AllocationOrRetentionPriority.h b/src/ranap/RANAP_AllocationOrRetentionPriority.h
new file mode 100644
index 0000000..9f19ea6
--- /dev/null
+++ b/src/ranap/RANAP_AllocationOrRetentionPriority.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_AllocationOrRetentionPriority_H_
+#define	_RANAP_AllocationOrRetentionPriority_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PriorityLevel.h"
+#include "RANAP_Pre-emptionCapability.h"
+#include "RANAP_Pre-emptionVulnerability.h"
+#include "RANAP_QueuingAllowed.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_AllocationOrRetentionPriority */
+typedef struct RANAP_AllocationOrRetentionPriority {
+	RANAP_PriorityLevel_t	 priorityLevel;
+	RANAP_Pre_emptionCapability_t	 pre_emptionCapability;
+	RANAP_Pre_emptionVulnerability_t	 pre_emptionVulnerability;
+	RANAP_QueuingAllowed_t	 queuingAllowed;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_AllocationOrRetentionPriority_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_AllocationOrRetentionPriority;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_AllocationOrRetentionPriority_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf.c b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf.c
new file mode 100644
index 0000000..98f8fd0
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf, altExtendedGuaranteedBitrateType),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altExtendedGuaranteedBitrateType"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf, altExtendedGuaranteedBitrates),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altExtendedGuaranteedBitrates"
+		},
+};
+static const int asn_MAP_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altExtendedGuaranteedBitrateType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altExtendedGuaranteedBitrates */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf),
+	offsetof(struct RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf, _asn_ctx),
+	asn_MAP_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf = {
+	"RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf",
+	"RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf.h b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf.h
new file mode 100644
index 0000000..9c51390
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_H_
+#define	_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Alt-RAB-Parameter-GuaranteedBitrateType.h"
+#include "RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrates.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf */
+typedef struct RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf {
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_t	 altExtendedGuaranteedBitrateType;
+	RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_t	*altExtendedGuaranteedBitrates	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateList.c b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateList.c
new file mode 100644
index 0000000..a0a2400
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_ExtendedGuaranteedBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList),
+	offsetof(struct RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList = {
+	"RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateList",
+	"RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_constr_1,
+	asn_MBR_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateList.h b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateList.h
new file mode 100644
index 0000000..3e7e9c3
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_H_
+#define	_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ExtendedGuaranteedBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateList */
+typedef struct RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList {
+	A_SEQUENCE_OF(RANAP_ExtendedGuaranteedBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrates.c b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrates.c
new file mode 100644
index 0000000..cab8a51
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrates.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrates.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  1l,  16l }	/* (SIZE(1..16)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates),
+	offsetof(struct RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates = {
+	"RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrates",
+	"RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrates",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_constr_1,
+	asn_MBR_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrates.h b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrates.h
new file mode 100644
index 0000000..0a6ef5a
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrates.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_H_
+#define	_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateList.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrates */
+typedef struct RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates {
+	A_SEQUENCE_OF(RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_ExtendedGuaranteedBitrates_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateInf.c b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateInf.c
new file mode 100644
index 0000000..370ceaf
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateInf.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateInf.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf, altExtendedMaxBitrateType),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateType,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altExtendedMaxBitrateType"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf, altExtendedMaxBitrates),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altExtendedMaxBitrates"
+		},
+};
+static const int asn_MAP_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altExtendedMaxBitrateType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altExtendedMaxBitrates */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf),
+	offsetof(struct RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf, _asn_ctx),
+	asn_MAP_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf = {
+	"RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateInf",
+	"RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateInf",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateInf.h b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateInf.h
new file mode 100644
index 0000000..21e53eb
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateInf.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_H_
+#define	_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Alt-RAB-Parameter-MaxBitrateType.h"
+#include "RANAP_Alt-RAB-Parameter-ExtendedMaxBitrates.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateInf */
+typedef struct RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf {
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_t	 altExtendedMaxBitrateType;
+	RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_t	*altExtendedMaxBitrates	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateInf_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateList.c b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateList.c
new file mode 100644
index 0000000..4a98375
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_ExtendedMaxBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList),
+	offsetof(struct RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList = {
+	"RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateList",
+	"RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_constr_1,
+	asn_MBR_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateList.h b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateList.h
new file mode 100644
index 0000000..8e51167
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_H_
+#define	_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ExtendedMaxBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateList */
+typedef struct RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList {
+	A_SEQUENCE_OF(RANAP_ExtendedMaxBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrates.c b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrates.c
new file mode 100644
index 0000000..eb4b238
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrates.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-ExtendedMaxBitrates.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  1l,  16l }	/* (SIZE(1..16)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates),
+	offsetof(struct RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates = {
+	"RANAP_Alt-RAB-Parameter-ExtendedMaxBitrates",
+	"RANAP_Alt-RAB-Parameter-ExtendedMaxBitrates",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_constr_1,
+	asn_MBR_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrates.h b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrates.h
new file mode 100644
index 0000000..635a449
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-ExtendedMaxBitrates.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_H_
+#define	_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateList.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameter-ExtendedMaxBitrates */
+typedef struct RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates {
+	A_SEQUENCE_OF(RANAP_Alt_RAB_Parameter_ExtendedMaxBitrateList_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_ExtendedMaxBitrates_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateInf.c b/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateInf.c
new file mode 100644
index 0000000..9cff07a
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateInf.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-GuaranteedBitrateInf.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf, altGuaranteedBitrateType),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altGuaranteedBitrateType"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf, altGuaranteedBitrates),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrates,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altGuaranteedBitrates"
+		},
+};
+static const int asn_MAP_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altGuaranteedBitrateType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altGuaranteedBitrates */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf),
+	offsetof(struct RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf, _asn_ctx),
+	asn_MAP_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf = {
+	"RANAP_Alt-RAB-Parameter-GuaranteedBitrateInf",
+	"RANAP_Alt-RAB-Parameter-GuaranteedBitrateInf",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateInf.h b/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateInf.h
new file mode 100644
index 0000000..e136bc7
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateInf.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_H_
+#define	_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Alt-RAB-Parameter-GuaranteedBitrateType.h"
+#include "RANAP_Alt-RAB-Parameter-GuaranteedBitrates.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameter-GuaranteedBitrateInf */
+typedef struct RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf {
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_t	 altGuaranteedBitrateType;
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrates_t	*altGuaranteedBitrates	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateList.c b/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateList.c
new file mode 100644
index 0000000..150e081
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-GuaranteedBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_GuaranteedBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_GuaranteedBitrateList),
+	offsetof(struct RANAP_Alt_RAB_Parameter_GuaranteedBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList = {
+	"RANAP_Alt-RAB-Parameter-GuaranteedBitrateList",
+	"RANAP_Alt-RAB-Parameter-GuaranteedBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_constr_1,
+	asn_MBR_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateList.h b/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateList.h
new file mode 100644
index 0000000..b654747
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_H_
+#define	_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_GuaranteedBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameter-GuaranteedBitrateList */
+typedef struct RANAP_Alt_RAB_Parameter_GuaranteedBitrateList {
+	A_SEQUENCE_OF(RANAP_GuaranteedBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateType.c b/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateType.c
new file mode 100644
index 0000000..204664a
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateType.c
@@ -0,0 +1,169 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-GuaranteedBitrateType.h"
+
+int
+RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  2l }	/* (0..2,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_value2enum_1[] = {
+	{ 0,	11,	"unspecified" },
+	{ 1,	11,	"value-range" },
+	{ 2,	15,	"discrete-values" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_enum2value_1[] = {
+	2,	/* discrete-values(2) */
+	0,	/* unspecified(0) */
+	1	/* value-range(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_specs_1 = {
+	asn_MAP_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_enum2value_1,	/* N => "tag"; sorted by N */
+	3,	/* Number of elements in the maps */
+	4,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType = {
+	"RANAP_Alt-RAB-Parameter-GuaranteedBitrateType",
+	"RANAP_Alt-RAB-Parameter-GuaranteedBitrateType",
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_free,
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_print,
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_constraint,
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_decode_ber,
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_encode_der,
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_decode_xer,
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_encode_xer,
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_decode_uper,
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_encode_uper,
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_decode_aper,
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateType.h b/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateType.h
new file mode 100644
index 0000000..57611be
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrateType.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_H_
+#define	_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_Alt_RAB_Parameter_GuaranteedBitrateType {
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_unspecified	= 0,
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_value_range	= 1,
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_discrete_values	= 2
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType;
+
+/* RANAP_Alt-RAB-Parameter-GuaranteedBitrateType */
+typedef long	 RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType;
+asn_struct_free_f RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_free;
+asn_struct_print_f RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_print;
+asn_constr_check_f RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_constraint;
+ber_type_decoder_f RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_decode_ber;
+der_type_encoder_f RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_encode_der;
+xer_type_decoder_f RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_decode_xer;
+xer_type_encoder_f RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_encode_xer;
+per_type_decoder_f RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_decode_uper;
+per_type_encoder_f RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_encode_uper;
+per_type_decoder_f RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_decode_aper;
+per_type_encoder_f RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrates.c b/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrates.c
new file mode 100644
index 0000000..ebe1a27
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrates.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-GuaranteedBitrates.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Alt_RAB_Parameter_GuaranteedBitrates_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  1l,  16l }	/* (SIZE(1..16)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_GuaranteedBitrates_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrates_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_GuaranteedBitrates_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_GuaranteedBitrates),
+	offsetof(struct RANAP_Alt_RAB_Parameter_GuaranteedBitrates, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrates = {
+	"RANAP_Alt-RAB-Parameter-GuaranteedBitrates",
+	"RANAP_Alt-RAB-Parameter-GuaranteedBitrates",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrates_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrates_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrates_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrates_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrates_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrates_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Alt_RAB_Parameter_GuaranteedBitrates_constr_1,
+	asn_MBR_RANAP_Alt_RAB_Parameter_GuaranteedBitrates_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_GuaranteedBitrates_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrates.h b/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrates.h
new file mode 100644
index 0000000..0c92a8b
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-GuaranteedBitrates.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_GuaranteedBitrates_H_
+#define	_RANAP_Alt_RAB_Parameter_GuaranteedBitrates_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Alt-RAB-Parameter-GuaranteedBitrateList.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameter-GuaranteedBitrates */
+typedef struct RANAP_Alt_RAB_Parameter_GuaranteedBitrates {
+	A_SEQUENCE_OF(RANAP_Alt_RAB_Parameter_GuaranteedBitrateList_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameter_GuaranteedBitrates_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrates;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_GuaranteedBitrates_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateInf.c b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateInf.c
new file mode 100644
index 0000000..6bd2fec
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateInf.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-MaxBitrateInf.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_MaxBitrateInf_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Alt_RAB_Parameter_MaxBitrateInf, altMaxBitrateType),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateType,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altMaxBitrateType"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_Alt_RAB_Parameter_MaxBitrateInf, altMaxBitrates),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrates,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altMaxBitrates"
+		},
+};
+static const int asn_MAP_RANAP_Alt_RAB_Parameter_MaxBitrateInf_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altMaxBitrateType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altMaxBitrates */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_MaxBitrateInf_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_MaxBitrateInf),
+	offsetof(struct RANAP_Alt_RAB_Parameter_MaxBitrateInf, _asn_ctx),
+	asn_MAP_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_Alt_RAB_Parameter_MaxBitrateInf_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf = {
+	"RANAP_Alt-RAB-Parameter-MaxBitrateInf",
+	"RANAP_Alt-RAB-Parameter-MaxBitrateInf",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Alt_RAB_Parameter_MaxBitrateInf_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_MaxBitrateInf_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateInf.h b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateInf.h
new file mode 100644
index 0000000..5163490
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateInf.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_MaxBitrateInf_H_
+#define	_RANAP_Alt_RAB_Parameter_MaxBitrateInf_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Alt-RAB-Parameter-MaxBitrateType.h"
+#include "RANAP_Alt-RAB-Parameter-MaxBitrates.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameter-MaxBitrateInf */
+typedef struct RANAP_Alt_RAB_Parameter_MaxBitrateInf {
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_t	 altMaxBitrateType;
+	RANAP_Alt_RAB_Parameter_MaxBitrates_t	*altMaxBitrates	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameter_MaxBitrateInf_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_MaxBitrateInf_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateList.c b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateList.c
new file mode 100644
index 0000000..f776c6d
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-MaxBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Alt_RAB_Parameter_MaxBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_MaxBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_MaxBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_MaxBitrateList_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_MaxBitrateList),
+	offsetof(struct RANAP_Alt_RAB_Parameter_MaxBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateList = {
+	"RANAP_Alt-RAB-Parameter-MaxBitrateList",
+	"RANAP_Alt-RAB-Parameter-MaxBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Alt_RAB_Parameter_MaxBitrateList_constr_1,
+	asn_MBR_RANAP_Alt_RAB_Parameter_MaxBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_MaxBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateList.h b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateList.h
new file mode 100644
index 0000000..55d5e74
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_MaxBitrateList_H_
+#define	_RANAP_Alt_RAB_Parameter_MaxBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_MaxBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameter-MaxBitrateList */
+typedef struct RANAP_Alt_RAB_Parameter_MaxBitrateList {
+	A_SEQUENCE_OF(RANAP_MaxBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameter_MaxBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_MaxBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateType.c b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateType.c
new file mode 100644
index 0000000..87e856c
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateType.c
@@ -0,0 +1,169 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-MaxBitrateType.h"
+
+int
+RANAP_Alt_RAB_Parameter_MaxBitrateType_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Alt_RAB_Parameter_MaxBitrateType_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_Alt_RAB_Parameter_MaxBitrateType_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Alt_RAB_Parameter_MaxBitrateType_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Alt_RAB_Parameter_MaxBitrateType_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Alt_RAB_Parameter_MaxBitrateType_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Alt_RAB_Parameter_MaxBitrateType_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Alt_RAB_Parameter_MaxBitrateType_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Alt_RAB_Parameter_MaxBitrateType_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Alt_RAB_Parameter_MaxBitrateType_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Alt_RAB_Parameter_MaxBitrateType_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Alt_RAB_Parameter_MaxBitrateType_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Alt_RAB_Parameter_MaxBitrateType_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  2l }	/* (0..2,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_Alt_RAB_Parameter_MaxBitrateType_value2enum_1[] = {
+	{ 0,	11,	"unspecified" },
+	{ 1,	11,	"value-range" },
+	{ 2,	15,	"discrete-values" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_Alt_RAB_Parameter_MaxBitrateType_enum2value_1[] = {
+	2,	/* discrete-values(2) */
+	0,	/* unspecified(0) */
+	1	/* value-range(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_MaxBitrateType_specs_1 = {
+	asn_MAP_RANAP_Alt_RAB_Parameter_MaxBitrateType_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_Alt_RAB_Parameter_MaxBitrateType_enum2value_1,	/* N => "tag"; sorted by N */
+	3,	/* Number of elements in the maps */
+	4,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateType_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateType = {
+	"RANAP_Alt-RAB-Parameter-MaxBitrateType",
+	"RANAP_Alt-RAB-Parameter-MaxBitrateType",
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_free,
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_print,
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_constraint,
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_decode_ber,
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_encode_der,
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_decode_xer,
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_encode_xer,
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_decode_uper,
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_encode_uper,
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_decode_aper,
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateType_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateType_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateType_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateType_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateType_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateType_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Alt_RAB_Parameter_MaxBitrateType_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_MaxBitrateType_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateType.h b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateType.h
new file mode 100644
index 0000000..1370399
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateType.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_MaxBitrateType_H_
+#define	_RANAP_Alt_RAB_Parameter_MaxBitrateType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_Alt_RAB_Parameter_MaxBitrateType {
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_unspecified	= 0,
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_value_range	= 1,
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_discrete_values	= 2
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_Alt_RAB_Parameter_MaxBitrateType;
+
+/* RANAP_Alt-RAB-Parameter-MaxBitrateType */
+typedef long	 RANAP_Alt_RAB_Parameter_MaxBitrateType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateType;
+asn_struct_free_f RANAP_Alt_RAB_Parameter_MaxBitrateType_free;
+asn_struct_print_f RANAP_Alt_RAB_Parameter_MaxBitrateType_print;
+asn_constr_check_f RANAP_Alt_RAB_Parameter_MaxBitrateType_constraint;
+ber_type_decoder_f RANAP_Alt_RAB_Parameter_MaxBitrateType_decode_ber;
+der_type_encoder_f RANAP_Alt_RAB_Parameter_MaxBitrateType_encode_der;
+xer_type_decoder_f RANAP_Alt_RAB_Parameter_MaxBitrateType_decode_xer;
+xer_type_encoder_f RANAP_Alt_RAB_Parameter_MaxBitrateType_encode_xer;
+per_type_decoder_f RANAP_Alt_RAB_Parameter_MaxBitrateType_decode_uper;
+per_type_encoder_f RANAP_Alt_RAB_Parameter_MaxBitrateType_encode_uper;
+per_type_decoder_f RANAP_Alt_RAB_Parameter_MaxBitrateType_decode_aper;
+per_type_encoder_f RANAP_Alt_RAB_Parameter_MaxBitrateType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_MaxBitrateType_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrates.c b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrates.c
new file mode 100644
index 0000000..485a613
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrates.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-MaxBitrates.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Alt_RAB_Parameter_MaxBitrates_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  1l,  16l }	/* (SIZE(1..16)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_MaxBitrates_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrates_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_MaxBitrates_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_MaxBitrates),
+	offsetof(struct RANAP_Alt_RAB_Parameter_MaxBitrates, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrates = {
+	"RANAP_Alt-RAB-Parameter-MaxBitrates",
+	"RANAP_Alt-RAB-Parameter-MaxBitrates",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrates_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrates_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrates_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrates_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrates_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrates_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Alt_RAB_Parameter_MaxBitrates_constr_1,
+	asn_MBR_RANAP_Alt_RAB_Parameter_MaxBitrates_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_MaxBitrates_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrates.h b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrates.h
new file mode 100644
index 0000000..11aba6d
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrates.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_MaxBitrates_H_
+#define	_RANAP_Alt_RAB_Parameter_MaxBitrates_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Alt-RAB-Parameter-MaxBitrateList.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameter-MaxBitrates */
+typedef struct RANAP_Alt_RAB_Parameter_MaxBitrates {
+	A_SEQUENCE_OF(RANAP_Alt_RAB_Parameter_MaxBitrateList_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameter_MaxBitrates_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrates;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_MaxBitrates_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrateInf.c b/src/ranap/RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrateInf.c
new file mode 100644
index 0000000..cb7351c
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrateInf.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrateInf.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf, altSupportedGuaranteedBitrateType),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateType,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altSupportedGuaranteedBitrateType"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf, altSupportedGuaranteedBitrates),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altSupportedGuaranteedBitrates"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altSupportedGuaranteedBitrateType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* altSupportedGuaranteedBitrates */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf),
+	offsetof(struct RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf, _asn_ctx),
+	asn_MAP_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf = {
+	"RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrateInf",
+	"RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrateInf",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrateInf.h b/src/ranap/RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrateInf.h
new file mode 100644
index 0000000..f352baa
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrateInf.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_H_
+#define	_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Alt-RAB-Parameter-GuaranteedBitrateType.h"
+#include "RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrates.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrateInf */
+typedef struct RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf {
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateType_t	 altSupportedGuaranteedBitrateType;
+	RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_t	*altSupportedGuaranteedBitrates	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrates.c b/src/ranap/RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrates.c
new file mode 100644
index 0000000..35df587
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrates.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrates.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  1l,  16l }	/* (SIZE(1..16)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_SupportedRAB_ParameterBitrateList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates),
+	offsetof(struct RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates = {
+	"RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrates",
+	"RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrates",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_constr_1,
+	asn_MBR_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrates.h b/src/ranap/RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrates.h
new file mode 100644
index 0000000..fa2a46f
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrates.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_H_
+#define	_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_SupportedRAB-ParameterBitrateList.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrates */
+typedef struct RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates {
+	A_SEQUENCE_OF(RANAP_SupportedRAB_ParameterBitrateList_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_SupportedGuaranteedBitrates_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-SupportedMaxBitrateInf.c b/src/ranap/RANAP_Alt-RAB-Parameter-SupportedMaxBitrateInf.c
new file mode 100644
index 0000000..6862df3
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-SupportedMaxBitrateInf.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-SupportedMaxBitrateInf.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf, altSupportedMaxBitrateType),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateType,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altSupportedMaxBitrateType"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf, altSupportedMaxBitrates),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altSupportedMaxBitrates"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altSupportedMaxBitrateType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* altSupportedMaxBitrates */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf),
+	offsetof(struct RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf, _asn_ctx),
+	asn_MAP_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf = {
+	"RANAP_Alt-RAB-Parameter-SupportedMaxBitrateInf",
+	"RANAP_Alt-RAB-Parameter-SupportedMaxBitrateInf",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-SupportedMaxBitrateInf.h b/src/ranap/RANAP_Alt-RAB-Parameter-SupportedMaxBitrateInf.h
new file mode 100644
index 0000000..3b3fb33
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-SupportedMaxBitrateInf.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_H_
+#define	_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Alt-RAB-Parameter-MaxBitrateType.h"
+#include "RANAP_Alt-RAB-Parameter-SupportedMaxBitrates.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameter-SupportedMaxBitrateInf */
+typedef struct RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf {
+	RANAP_Alt_RAB_Parameter_MaxBitrateType_t	 altSupportedMaxBitrateType;
+	RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_t	*altSupportedMaxBitrates	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_SupportedMaxBitrateInf_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-SupportedMaxBitrates.c b/src/ranap/RANAP_Alt-RAB-Parameter-SupportedMaxBitrates.c
new file mode 100644
index 0000000..bcf848c
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-SupportedMaxBitrates.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameter-SupportedMaxBitrates.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  1l,  16l }	/* (SIZE(1..16)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_SupportedRAB_ParameterBitrateList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_SupportedMaxBitrates),
+	offsetof(struct RANAP_Alt_RAB_Parameter_SupportedMaxBitrates, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates = {
+	"RANAP_Alt-RAB-Parameter-SupportedMaxBitrates",
+	"RANAP_Alt-RAB-Parameter-SupportedMaxBitrates",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_constr_1,
+	asn_MBR_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-SupportedMaxBitrates.h b/src/ranap/RANAP_Alt-RAB-Parameter-SupportedMaxBitrates.h
new file mode 100644
index 0000000..453d578
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-SupportedMaxBitrates.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_H_
+#define	_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_SupportedRAB-ParameterBitrateList.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameter-SupportedMaxBitrates */
+typedef struct RANAP_Alt_RAB_Parameter_SupportedMaxBitrates {
+	A_SEQUENCE_OF(RANAP_SupportedRAB_ParameterBitrateList_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_SupportedMaxBitrates;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameter_SupportedMaxBitrates_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Alt-RAB-Parameters.c b/src/ranap/RANAP_Alt-RAB-Parameters.c
new file mode 100644
index 0000000..5bee958
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameters.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Alt-RAB-Parameters.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameters_1[] = {
+	{ ATF_POINTER, 3, offsetof(struct RANAP_Alt_RAB_Parameters, altMaxBitrateInf),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altMaxBitrateInf"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_Alt_RAB_Parameters, altGuaranteedBitRateInf),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altGuaranteedBitRateInf"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_Alt_RAB_Parameters, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_Alt_RAB_Parameters_oms_1[] = { 0, 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameters_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Alt_RAB_Parameters_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altMaxBitrateInf */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* altGuaranteedBitRateInf */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Alt_RAB_Parameters_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameters),
+	offsetof(struct RANAP_Alt_RAB_Parameters, _asn_ctx),
+	asn_MAP_RANAP_Alt_RAB_Parameters_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_Alt_RAB_Parameters_oms_1,	/* Optional members */
+	3, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameters = {
+	"RANAP_Alt-RAB-Parameters",
+	"RANAP_Alt-RAB-Parameters",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Alt_RAB_Parameters_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameters_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameters_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameters_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Alt_RAB_Parameters_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_Alt_RAB_Parameters_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Alt-RAB-Parameters.h b/src/ranap/RANAP_Alt-RAB-Parameters.h
new file mode 100644
index 0000000..a92d41c
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameters.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Alt_RAB_Parameters_H_
+#define	_RANAP_Alt_RAB_Parameters_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Alt-RAB-Parameter-MaxBitrateInf.h"
+#include "RANAP_Alt-RAB-Parameter-GuaranteedBitrateInf.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Alt-RAB-Parameters */
+typedef struct RANAP_Alt_RAB_Parameters {
+	RANAP_Alt_RAB_Parameter_MaxBitrateInf_t	*altMaxBitrateInf	/* OPTIONAL */;
+	RANAP_Alt_RAB_Parameter_GuaranteedBitrateInf_t	*altGuaranteedBitRateInf	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Alt_RAB_Parameters_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameters;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Alt_RAB_Parameters_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_AlternativeRABConfigurationRequest.c b/src/ranap/RANAP_AlternativeRABConfigurationRequest.c
new file mode 100644
index 0000000..388a74d
--- /dev/null
+++ b/src/ranap/RANAP_AlternativeRABConfigurationRequest.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_AlternativeRABConfigurationRequest.h"
+
+int
+RANAP_AlternativeRABConfigurationRequest_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_AlternativeRABConfigurationRequest_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_AlternativeRABConfigurationRequest_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_AlternativeRABConfigurationRequest_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_AlternativeRABConfigurationRequest_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_AlternativeRABConfigurationRequest_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_AlternativeRABConfigurationRequest_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_AlternativeRABConfigurationRequest_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_AlternativeRABConfigurationRequest_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_AlternativeRABConfigurationRequest_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_AlternativeRABConfigurationRequest_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_AlternativeRABConfigurationRequest_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_AlternativeRABConfigurationRequest_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_AlternativeRABConfigurationRequest_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_AlternativeRABConfigurationRequest_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_AlternativeRABConfigurationRequest_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_AlternativeRABConfigurationRequest_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_AlternativeRABConfigurationRequest_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_AlternativeRABConfigurationRequest_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_AlternativeRABConfigurationRequest_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_AlternativeRABConfigurationRequest_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_AlternativeRABConfigurationRequest_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_AlternativeRABConfigurationRequest_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_AlternativeRABConfigurationRequest_value2enum_1[] = {
+	{ 0,	39,	"alternative-RAB-configuration-Requested" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_AlternativeRABConfigurationRequest_enum2value_1[] = {
+	0	/* alternative-RAB-configuration-Requested(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_AlternativeRABConfigurationRequest_specs_1 = {
+	asn_MAP_RANAP_AlternativeRABConfigurationRequest_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_AlternativeRABConfigurationRequest_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_AlternativeRABConfigurationRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_AlternativeRABConfigurationRequest = {
+	"RANAP_AlternativeRABConfigurationRequest",
+	"RANAP_AlternativeRABConfigurationRequest",
+	RANAP_AlternativeRABConfigurationRequest_free,
+	RANAP_AlternativeRABConfigurationRequest_print,
+	RANAP_AlternativeRABConfigurationRequest_constraint,
+	RANAP_AlternativeRABConfigurationRequest_decode_ber,
+	RANAP_AlternativeRABConfigurationRequest_encode_der,
+	RANAP_AlternativeRABConfigurationRequest_decode_xer,
+	RANAP_AlternativeRABConfigurationRequest_encode_xer,
+	RANAP_AlternativeRABConfigurationRequest_decode_uper,
+	RANAP_AlternativeRABConfigurationRequest_encode_uper,
+	RANAP_AlternativeRABConfigurationRequest_decode_aper,
+	RANAP_AlternativeRABConfigurationRequest_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_AlternativeRABConfigurationRequest_tags_1,
+	sizeof(asn_DEF_RANAP_AlternativeRABConfigurationRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_AlternativeRABConfigurationRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_AlternativeRABConfigurationRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_AlternativeRABConfigurationRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_AlternativeRABConfigurationRequest_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_AlternativeRABConfigurationRequest_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_AlternativeRABConfigurationRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_AlternativeRABConfigurationRequest.h b/src/ranap/RANAP_AlternativeRABConfigurationRequest.h
new file mode 100644
index 0000000..676d97f
--- /dev/null
+++ b/src/ranap/RANAP_AlternativeRABConfigurationRequest.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_AlternativeRABConfigurationRequest_H_
+#define	_RANAP_AlternativeRABConfigurationRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_AlternativeRABConfigurationRequest {
+	RANAP_AlternativeRABConfigurationRequest_alternative_RAB_configuration_Requested	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_AlternativeRABConfigurationRequest;
+
+/* RANAP_AlternativeRABConfigurationRequest */
+typedef long	 RANAP_AlternativeRABConfigurationRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_AlternativeRABConfigurationRequest;
+asn_struct_free_f RANAP_AlternativeRABConfigurationRequest_free;
+asn_struct_print_f RANAP_AlternativeRABConfigurationRequest_print;
+asn_constr_check_f RANAP_AlternativeRABConfigurationRequest_constraint;
+ber_type_decoder_f RANAP_AlternativeRABConfigurationRequest_decode_ber;
+der_type_encoder_f RANAP_AlternativeRABConfigurationRequest_encode_der;
+xer_type_decoder_f RANAP_AlternativeRABConfigurationRequest_decode_xer;
+xer_type_encoder_f RANAP_AlternativeRABConfigurationRequest_encode_xer;
+per_type_decoder_f RANAP_AlternativeRABConfigurationRequest_decode_uper;
+per_type_encoder_f RANAP_AlternativeRABConfigurationRequest_encode_uper;
+per_type_decoder_f RANAP_AlternativeRABConfigurationRequest_decode_aper;
+per_type_encoder_f RANAP_AlternativeRABConfigurationRequest_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_AlternativeRABConfigurationRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_AreaIdentity.c b/src/ranap/RANAP_AreaIdentity.c
new file mode 100644
index 0000000..259b8b0
--- /dev/null
+++ b/src/ranap/RANAP_AreaIdentity.c
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_AreaIdentity.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_AreaIdentity_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_AreaIdentity_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_AreaIdentity, choice.sAI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_SAI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"sAI"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_AreaIdentity, choice.geographicalArea),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANAP_GeographicalArea,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"geographicalArea"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_AreaIdentity_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sAI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* geographicalArea */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_AreaIdentity_specs_1 = {
+	sizeof(struct RANAP_AreaIdentity),
+	offsetof(struct RANAP_AreaIdentity, _asn_ctx),
+	offsetof(struct RANAP_AreaIdentity, present),
+	sizeof(((struct RANAP_AreaIdentity *)0)->present),
+	asn_MAP_RANAP_AreaIdentity_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_AreaIdentity = {
+	"RANAP_AreaIdentity",
+	"RANAP_AreaIdentity",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_AreaIdentity_constr_1,
+	asn_MBR_RANAP_AreaIdentity_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_AreaIdentity_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_AreaIdentity.h b/src/ranap/RANAP_AreaIdentity.h
new file mode 100644
index 0000000..3af01d2
--- /dev/null
+++ b/src/ranap/RANAP_AreaIdentity.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_AreaIdentity_H_
+#define	_RANAP_AreaIdentity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_SAI.h"
+#include "RANAP_GeographicalArea.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_AreaIdentity_PR {
+	RANAP_AreaIdentity_PR_NOTHING,	/* No components present */
+	RANAP_AreaIdentity_PR_sAI,
+	RANAP_AreaIdentity_PR_geographicalArea,
+	/* Extensions may appear below */
+	
+} RANAP_AreaIdentity_PR;
+
+/* RANAP_AreaIdentity */
+typedef struct RANAP_AreaIdentity {
+	RANAP_AreaIdentity_PR present;
+	union RANAP_AreaIdentity_u {
+		RANAP_SAI_t	 sAI;
+		RANAP_GeographicalArea_t	 geographicalArea;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_AreaIdentity_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_AreaIdentity;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_AreaIdentity_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Ass-RAB-Parameter-ExtendedGuaranteedBitrateList.c b/src/ranap/RANAP_Ass-RAB-Parameter-ExtendedGuaranteedBitrateList.c
new file mode 100644
index 0000000..310bf43
--- /dev/null
+++ b/src/ranap/RANAP_Ass-RAB-Parameter-ExtendedGuaranteedBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Ass-RAB-Parameter-ExtendedGuaranteedBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_ExtendedGuaranteedBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_specs_1 = {
+	sizeof(struct RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList),
+	offsetof(struct RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList = {
+	"RANAP_Ass-RAB-Parameter-ExtendedGuaranteedBitrateList",
+	"RANAP_Ass-RAB-Parameter-ExtendedGuaranteedBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_constr_1,
+	asn_MBR_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Ass-RAB-Parameter-ExtendedGuaranteedBitrateList.h b/src/ranap/RANAP_Ass-RAB-Parameter-ExtendedGuaranteedBitrateList.h
new file mode 100644
index 0000000..a8a5bc6
--- /dev/null
+++ b/src/ranap/RANAP_Ass-RAB-Parameter-ExtendedGuaranteedBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_H_
+#define	_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ExtendedGuaranteedBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Ass-RAB-Parameter-ExtendedGuaranteedBitrateList */
+typedef struct RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList {
+	A_SEQUENCE_OF(RANAP_ExtendedGuaranteedBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Ass-RAB-Parameter-ExtendedMaxBitrateList.c b/src/ranap/RANAP_Ass-RAB-Parameter-ExtendedMaxBitrateList.c
new file mode 100644
index 0000000..90f2cda
--- /dev/null
+++ b/src/ranap/RANAP_Ass-RAB-Parameter-ExtendedMaxBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Ass-RAB-Parameter-ExtendedMaxBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_ExtendedMaxBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_specs_1 = {
+	sizeof(struct RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList),
+	offsetof(struct RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList = {
+	"RANAP_Ass-RAB-Parameter-ExtendedMaxBitrateList",
+	"RANAP_Ass-RAB-Parameter-ExtendedMaxBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_constr_1,
+	asn_MBR_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Ass-RAB-Parameter-ExtendedMaxBitrateList.h b/src/ranap/RANAP_Ass-RAB-Parameter-ExtendedMaxBitrateList.h
new file mode 100644
index 0000000..4ecb4e6
--- /dev/null
+++ b/src/ranap/RANAP_Ass-RAB-Parameter-ExtendedMaxBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_H_
+#define	_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ExtendedMaxBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Ass-RAB-Parameter-ExtendedMaxBitrateList */
+typedef struct RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList {
+	A_SEQUENCE_OF(RANAP_ExtendedMaxBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Ass_RAB_Parameter_ExtendedMaxBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Ass-RAB-Parameter-GuaranteedBitrateList.c b/src/ranap/RANAP_Ass-RAB-Parameter-GuaranteedBitrateList.c
new file mode 100644
index 0000000..59ff57d
--- /dev/null
+++ b/src/ranap/RANAP_Ass-RAB-Parameter-GuaranteedBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Ass-RAB-Parameter-GuaranteedBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_GuaranteedBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_specs_1 = {
+	sizeof(struct RANAP_Ass_RAB_Parameter_GuaranteedBitrateList),
+	offsetof(struct RANAP_Ass_RAB_Parameter_GuaranteedBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList = {
+	"RANAP_Ass-RAB-Parameter-GuaranteedBitrateList",
+	"RANAP_Ass-RAB-Parameter-GuaranteedBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_constr_1,
+	asn_MBR_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Ass-RAB-Parameter-GuaranteedBitrateList.h b/src/ranap/RANAP_Ass-RAB-Parameter-GuaranteedBitrateList.h
new file mode 100644
index 0000000..63e30ed
--- /dev/null
+++ b/src/ranap/RANAP_Ass-RAB-Parameter-GuaranteedBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_H_
+#define	_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_GuaranteedBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Ass-RAB-Parameter-GuaranteedBitrateList */
+typedef struct RANAP_Ass_RAB_Parameter_GuaranteedBitrateList {
+	A_SEQUENCE_OF(RANAP_GuaranteedBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Ass-RAB-Parameter-MaxBitrateList.c b/src/ranap/RANAP_Ass-RAB-Parameter-MaxBitrateList.c
new file mode 100644
index 0000000..94bafa4
--- /dev/null
+++ b/src/ranap/RANAP_Ass-RAB-Parameter-MaxBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Ass-RAB-Parameter-MaxBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Ass_RAB_Parameter_MaxBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Ass_RAB_Parameter_MaxBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_MaxBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Ass_RAB_Parameter_MaxBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Ass_RAB_Parameter_MaxBitrateList_specs_1 = {
+	sizeof(struct RANAP_Ass_RAB_Parameter_MaxBitrateList),
+	offsetof(struct RANAP_Ass_RAB_Parameter_MaxBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Ass_RAB_Parameter_MaxBitrateList = {
+	"RANAP_Ass-RAB-Parameter-MaxBitrateList",
+	"RANAP_Ass-RAB-Parameter-MaxBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Ass_RAB_Parameter_MaxBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_Ass_RAB_Parameter_MaxBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Ass_RAB_Parameter_MaxBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Ass_RAB_Parameter_MaxBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Ass_RAB_Parameter_MaxBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Ass_RAB_Parameter_MaxBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Ass_RAB_Parameter_MaxBitrateList_constr_1,
+	asn_MBR_RANAP_Ass_RAB_Parameter_MaxBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Ass_RAB_Parameter_MaxBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Ass-RAB-Parameter-MaxBitrateList.h b/src/ranap/RANAP_Ass-RAB-Parameter-MaxBitrateList.h
new file mode 100644
index 0000000..1171651
--- /dev/null
+++ b/src/ranap/RANAP_Ass-RAB-Parameter-MaxBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Ass_RAB_Parameter_MaxBitrateList_H_
+#define	_RANAP_Ass_RAB_Parameter_MaxBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_MaxBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Ass-RAB-Parameter-MaxBitrateList */
+typedef struct RANAP_Ass_RAB_Parameter_MaxBitrateList {
+	A_SEQUENCE_OF(RANAP_MaxBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Ass_RAB_Parameter_MaxBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Ass_RAB_Parameter_MaxBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Ass_RAB_Parameter_MaxBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Ass-RAB-Parameters.c b/src/ranap/RANAP_Ass-RAB-Parameters.c
new file mode 100644
index 0000000..2804418
--- /dev/null
+++ b/src/ranap/RANAP_Ass-RAB-Parameters.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Ass-RAB-Parameters.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_Ass_RAB_Parameters_1[] = {
+	{ ATF_POINTER, 3, offsetof(struct RANAP_Ass_RAB_Parameters, assMaxBitrateInf),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Ass_RAB_Parameter_MaxBitrateList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"assMaxBitrateInf"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_Ass_RAB_Parameters, assGuaranteedBitRateInf),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Ass_RAB_Parameter_GuaranteedBitrateList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"assGuaranteedBitRateInf"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_Ass_RAB_Parameters, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_Ass_RAB_Parameters_oms_1[] = { 0, 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_Ass_RAB_Parameters_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Ass_RAB_Parameters_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* assMaxBitrateInf */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* assGuaranteedBitRateInf */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Ass_RAB_Parameters_specs_1 = {
+	sizeof(struct RANAP_Ass_RAB_Parameters),
+	offsetof(struct RANAP_Ass_RAB_Parameters, _asn_ctx),
+	asn_MAP_RANAP_Ass_RAB_Parameters_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_Ass_RAB_Parameters_oms_1,	/* Optional members */
+	3, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Ass_RAB_Parameters = {
+	"RANAP_Ass-RAB-Parameters",
+	"RANAP_Ass-RAB-Parameters",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Ass_RAB_Parameters_tags_1,
+	sizeof(asn_DEF_RANAP_Ass_RAB_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_Ass_RAB_Parameters_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Ass_RAB_Parameters_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Ass_RAB_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_Ass_RAB_Parameters_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Ass_RAB_Parameters_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_Ass_RAB_Parameters_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Ass-RAB-Parameters.h b/src/ranap/RANAP_Ass-RAB-Parameters.h
new file mode 100644
index 0000000..4760fdf
--- /dev/null
+++ b/src/ranap/RANAP_Ass-RAB-Parameters.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Ass_RAB_Parameters_H_
+#define	_RANAP_Ass_RAB_Parameters_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Ass-RAB-Parameter-MaxBitrateList.h"
+#include "RANAP_Ass-RAB-Parameter-GuaranteedBitrateList.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Ass-RAB-Parameters */
+typedef struct RANAP_Ass_RAB_Parameters {
+	RANAP_Ass_RAB_Parameter_MaxBitrateList_t	*assMaxBitrateInf	/* OPTIONAL */;
+	RANAP_Ass_RAB_Parameter_GuaranteedBitrateList_t	*assGuaranteedBitRateInf	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Ass_RAB_Parameters_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Ass_RAB_Parameters;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Ass_RAB_Parameters_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_AuthorisedPLMNs.c b/src/ranap/RANAP_AuthorisedPLMNs.c
new file mode 100644
index 0000000..784177c
--- /dev/null
+++ b/src/ranap/RANAP_AuthorisedPLMNs.c
@@ -0,0 +1,135 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_AuthorisedPLMNs.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_AuthorisedPLMNs_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 5,  5,  1l,  32l }	/* (SIZE(1..32)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct Member, pLMNidentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PLMNidentity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pLMNidentity"
+		},
+	{ ATF_POINTER, 2, offsetof(struct Member, authorisedSNAsList),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_AuthorisedSNAs,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"authorisedSNAsList"
+		},
+	{ ATF_POINTER, 1, offsetof(struct Member, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_Member_oms_2[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* authorisedSNAsList */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+	sizeof(struct Member),
+	offsetof(struct Member, _asn_ctx),
+	asn_MAP_Member_tag2el_2,
+	3,	/* Count of tags in the map */
+	asn_MAP_Member_oms_2,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+	"SEQUENCE",
+	"SEQUENCE",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_Member_tags_2,
+	sizeof(asn_DEF_Member_tags_2)
+		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	asn_DEF_Member_tags_2,	/* Same as above */
+	sizeof(asn_DEF_Member_tags_2)
+		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_Member_2,
+	3,	/* Elements count */
+	&asn_SPC_Member_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_AuthorisedPLMNs_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_Member_2,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_AuthorisedPLMNs_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_AuthorisedPLMNs_specs_1 = {
+	sizeof(struct RANAP_AuthorisedPLMNs),
+	offsetof(struct RANAP_AuthorisedPLMNs, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_AuthorisedPLMNs = {
+	"RANAP_AuthorisedPLMNs",
+	"RANAP_AuthorisedPLMNs",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_AuthorisedPLMNs_tags_1,
+	sizeof(asn_DEF_RANAP_AuthorisedPLMNs_tags_1)
+		/sizeof(asn_DEF_RANAP_AuthorisedPLMNs_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_AuthorisedPLMNs_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_AuthorisedPLMNs_tags_1)
+		/sizeof(asn_DEF_RANAP_AuthorisedPLMNs_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_AuthorisedPLMNs_constr_1,
+	asn_MBR_RANAP_AuthorisedPLMNs_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_AuthorisedPLMNs_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_AuthorisedPLMNs.h b/src/ranap/RANAP_AuthorisedPLMNs.h
new file mode 100644
index 0000000..16fe12c
--- /dev/null
+++ b/src/ranap/RANAP_AuthorisedPLMNs.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_AuthorisedPLMNs_H_
+#define	_RANAP_AuthorisedPLMNs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "RANAP_PLMNidentity.h"
+#include "RANAP_AuthorisedSNAs.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_AuthorisedPLMNs */
+typedef struct RANAP_AuthorisedPLMNs {
+	A_SEQUENCE_OF(struct Member {
+		RANAP_PLMNidentity_t	 pLMNidentity;
+		RANAP_AuthorisedSNAs_t	*authorisedSNAsList	/* OPTIONAL */;
+		RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_AuthorisedPLMNs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_AuthorisedPLMNs;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_AuthorisedPLMNs_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_AuthorisedSNAs.c b/src/ranap/RANAP_AuthorisedSNAs.c
new file mode 100644
index 0000000..f236bec
--- /dev/null
+++ b/src/ranap/RANAP_AuthorisedSNAs.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_AuthorisedSNAs.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_AuthorisedSNAs_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16, -1,  1l,  65536l }	/* (SIZE(1..65536)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_AuthorisedSNAs_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_SNAC,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_AuthorisedSNAs_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_AuthorisedSNAs_specs_1 = {
+	sizeof(struct RANAP_AuthorisedSNAs),
+	offsetof(struct RANAP_AuthorisedSNAs, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_AuthorisedSNAs = {
+	"RANAP_AuthorisedSNAs",
+	"RANAP_AuthorisedSNAs",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_AuthorisedSNAs_tags_1,
+	sizeof(asn_DEF_RANAP_AuthorisedSNAs_tags_1)
+		/sizeof(asn_DEF_RANAP_AuthorisedSNAs_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_AuthorisedSNAs_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_AuthorisedSNAs_tags_1)
+		/sizeof(asn_DEF_RANAP_AuthorisedSNAs_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_AuthorisedSNAs_constr_1,
+	asn_MBR_RANAP_AuthorisedSNAs_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_AuthorisedSNAs_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_AuthorisedSNAs.h b/src/ranap/RANAP_AuthorisedSNAs.h
new file mode 100644
index 0000000..20abd85
--- /dev/null
+++ b/src/ranap/RANAP_AuthorisedSNAs.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_AuthorisedSNAs_H_
+#define	_RANAP_AuthorisedSNAs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_SNAC.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_AuthorisedSNAs */
+typedef struct RANAP_AuthorisedSNAs {
+	A_SEQUENCE_OF(RANAP_SNAC_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_AuthorisedSNAs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_AuthorisedSNAs;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_AuthorisedSNAs_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_BindingID.c b/src/ranap/RANAP_BindingID.c
new file mode 100644
index 0000000..92f72c9
--- /dev/null
+++ b/src/ranap/RANAP_BindingID.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_BindingID.h"
+
+int
+RANAP_BindingID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 4l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_BindingID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_BindingID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_BindingID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_BindingID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_BindingID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_BindingID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_BindingID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_BindingID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_BindingID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_BindingID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_BindingID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_BindingID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_BindingID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_BindingID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_BindingID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_BindingID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_BindingID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_BindingID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_BindingID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_BindingID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_BindingID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_BindingID_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  4l,  4l }	/* (SIZE(4..4)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_BindingID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_BindingID = {
+	"RANAP_BindingID",
+	"RANAP_BindingID",
+	RANAP_BindingID_free,
+	RANAP_BindingID_print,
+	RANAP_BindingID_constraint,
+	RANAP_BindingID_decode_ber,
+	RANAP_BindingID_encode_der,
+	RANAP_BindingID_decode_xer,
+	RANAP_BindingID_encode_xer,
+	RANAP_BindingID_decode_uper,
+	RANAP_BindingID_encode_uper,
+	RANAP_BindingID_decode_aper,
+	RANAP_BindingID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_BindingID_tags_1,
+	sizeof(asn_DEF_RANAP_BindingID_tags_1)
+		/sizeof(asn_DEF_RANAP_BindingID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_BindingID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_BindingID_tags_1)
+		/sizeof(asn_DEF_RANAP_BindingID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_BindingID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_BindingID.h b/src/ranap/RANAP_BindingID.h
new file mode 100644
index 0000000..ff5a303
--- /dev/null
+++ b/src/ranap/RANAP_BindingID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_BindingID_H_
+#define	_RANAP_BindingID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_BindingID */
+typedef OCTET_STRING_t	 RANAP_BindingID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_BindingID;
+asn_struct_free_f RANAP_BindingID_free;
+asn_struct_print_f RANAP_BindingID_print;
+asn_constr_check_f RANAP_BindingID_constraint;
+ber_type_decoder_f RANAP_BindingID_decode_ber;
+der_type_encoder_f RANAP_BindingID_encode_der;
+xer_type_decoder_f RANAP_BindingID_decode_xer;
+xer_type_encoder_f RANAP_BindingID_encode_xer;
+per_type_decoder_f RANAP_BindingID_decode_uper;
+per_type_encoder_f RANAP_BindingID_encode_uper;
+per_type_decoder_f RANAP_BindingID_decode_aper;
+per_type_encoder_f RANAP_BindingID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_BindingID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_BroadcastAssistanceDataDecipheringKeys.c b/src/ranap/RANAP_BroadcastAssistanceDataDecipheringKeys.c
new file mode 100644
index 0000000..cfbe03d
--- /dev/null
+++ b/src/ranap/RANAP_BroadcastAssistanceDataDecipheringKeys.c
@@ -0,0 +1,189 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_BroadcastAssistanceDataDecipheringKeys.h"
+
+static int
+memb_cipheringKeyFlag_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 1l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_currentDecipheringKey_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 56l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_nextDecipheringKey_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 56l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_cipheringKeyFlag_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  1l,  1l }	/* (SIZE(1..1)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_currentDecipheringKey_constr_3 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  56l,  56l }	/* (SIZE(56..56)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_nextDecipheringKey_constr_4 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  56l,  56l }	/* (SIZE(56..56)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_BroadcastAssistanceDataDecipheringKeys_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_BroadcastAssistanceDataDecipheringKeys, cipheringKeyFlag),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		memb_cipheringKeyFlag_constraint_1,
+		&asn_PER_memb_cipheringKeyFlag_constr_2,
+		0,
+		"cipheringKeyFlag"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_BroadcastAssistanceDataDecipheringKeys, currentDecipheringKey),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		memb_currentDecipheringKey_constraint_1,
+		&asn_PER_memb_currentDecipheringKey_constr_3,
+		0,
+		"currentDecipheringKey"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_BroadcastAssistanceDataDecipheringKeys, nextDecipheringKey),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		memb_nextDecipheringKey_constraint_1,
+		&asn_PER_memb_nextDecipheringKey_constr_4,
+		0,
+		"nextDecipheringKey"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_BroadcastAssistanceDataDecipheringKeys_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_BroadcastAssistanceDataDecipheringKeys_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cipheringKeyFlag */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* currentDecipheringKey */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nextDecipheringKey */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_BroadcastAssistanceDataDecipheringKeys_specs_1 = {
+	sizeof(struct RANAP_BroadcastAssistanceDataDecipheringKeys),
+	offsetof(struct RANAP_BroadcastAssistanceDataDecipheringKeys, _asn_ctx),
+	asn_MAP_RANAP_BroadcastAssistanceDataDecipheringKeys_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_BroadcastAssistanceDataDecipheringKeys = {
+	"RANAP_BroadcastAssistanceDataDecipheringKeys",
+	"RANAP_BroadcastAssistanceDataDecipheringKeys",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_BroadcastAssistanceDataDecipheringKeys_tags_1,
+	sizeof(asn_DEF_RANAP_BroadcastAssistanceDataDecipheringKeys_tags_1)
+		/sizeof(asn_DEF_RANAP_BroadcastAssistanceDataDecipheringKeys_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_BroadcastAssistanceDataDecipheringKeys_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_BroadcastAssistanceDataDecipheringKeys_tags_1)
+		/sizeof(asn_DEF_RANAP_BroadcastAssistanceDataDecipheringKeys_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_BroadcastAssistanceDataDecipheringKeys_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_BroadcastAssistanceDataDecipheringKeys_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_BroadcastAssistanceDataDecipheringKeys.h b/src/ranap/RANAP_BroadcastAssistanceDataDecipheringKeys.h
new file mode 100644
index 0000000..8d0e895
--- /dev/null
+++ b/src/ranap/RANAP_BroadcastAssistanceDataDecipheringKeys.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_BroadcastAssistanceDataDecipheringKeys_H_
+#define	_RANAP_BroadcastAssistanceDataDecipheringKeys_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_BroadcastAssistanceDataDecipheringKeys */
+typedef struct RANAP_BroadcastAssistanceDataDecipheringKeys {
+	BIT_STRING_t	 cipheringKeyFlag;
+	BIT_STRING_t	 currentDecipheringKey;
+	BIT_STRING_t	 nextDecipheringKey;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_BroadcastAssistanceDataDecipheringKeys_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_BroadcastAssistanceDataDecipheringKeys;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_BroadcastAssistanceDataDecipheringKeys_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CGI.c b/src/ranap/RANAP_CGI.c
new file mode 100644
index 0000000..6987266
--- /dev/null
+++ b/src/ranap/RANAP_CGI.c
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CGI.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_CGI_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_CGI, pLMNidentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PLMNidentity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pLMNidentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_CGI, lAC),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_LAC,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"lAC"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_CGI, cI),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"cI"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_CGI, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_CGI_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_RANAP_CGI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_CGI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lAC */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cI */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_CGI_specs_1 = {
+	sizeof(struct RANAP_CGI),
+	offsetof(struct RANAP_CGI, _asn_ctx),
+	asn_MAP_RANAP_CGI_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_CGI_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CGI = {
+	"RANAP_CGI",
+	"RANAP_CGI",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CGI_tags_1,
+	sizeof(asn_DEF_RANAP_CGI_tags_1)
+		/sizeof(asn_DEF_RANAP_CGI_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CGI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CGI_tags_1)
+		/sizeof(asn_DEF_RANAP_CGI_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_CGI_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_CGI_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_CGI.h b/src/ranap/RANAP_CGI.h
new file mode 100644
index 0000000..7f132b8
--- /dev/null
+++ b/src/ranap/RANAP_CGI.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CGI_H_
+#define	_RANAP_CGI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PLMNidentity.h"
+#include "RANAP_LAC.h"
+#include "RANAP_CI.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_CGI */
+typedef struct RANAP_CGI {
+	RANAP_PLMNidentity_t	 pLMNidentity;
+	RANAP_LAC_t	 lAC;
+	RANAP_CI_t	 cI;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_CGI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CGI;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CGI_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CI.c b/src/ranap/RANAP_CI.c
new file mode 100644
index 0000000..9033b5f
--- /dev/null
+++ b/src/ranap/RANAP_CI.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CI.h"
+
+int
+RANAP_CI_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 2l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_CI_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_CI_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_CI_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_CI_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CI_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CI_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_CI_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_CI_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CI_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CI_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_CI_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_CI_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CI_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CI_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CI_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_CI_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CI_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_CI_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CI_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_CI_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CI_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_CI_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  2l,  2l }	/* (SIZE(2..2)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CI = {
+	"RANAP_CI",
+	"RANAP_CI",
+	RANAP_CI_free,
+	RANAP_CI_print,
+	RANAP_CI_constraint,
+	RANAP_CI_decode_ber,
+	RANAP_CI_encode_der,
+	RANAP_CI_decode_xer,
+	RANAP_CI_encode_xer,
+	RANAP_CI_decode_uper,
+	RANAP_CI_encode_uper,
+	RANAP_CI_decode_aper,
+	RANAP_CI_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CI_tags_1,
+	sizeof(asn_DEF_RANAP_CI_tags_1)
+		/sizeof(asn_DEF_RANAP_CI_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CI_tags_1)
+		/sizeof(asn_DEF_RANAP_CI_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CI_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_CI.h b/src/ranap/RANAP_CI.h
new file mode 100644
index 0000000..fb7c777
--- /dev/null
+++ b/src/ranap/RANAP_CI.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CI_H_
+#define	_RANAP_CI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_CI */
+typedef OCTET_STRING_t	 RANAP_CI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CI;
+asn_struct_free_f RANAP_CI_free;
+asn_struct_print_f RANAP_CI_print;
+asn_constr_check_f RANAP_CI_constraint;
+ber_type_decoder_f RANAP_CI_decode_ber;
+der_type_encoder_f RANAP_CI_encode_der;
+xer_type_decoder_f RANAP_CI_decode_xer;
+xer_type_encoder_f RANAP_CI_encode_xer;
+per_type_decoder_f RANAP_CI_decode_uper;
+per_type_encoder_f RANAP_CI_encode_uper;
+per_type_decoder_f RANAP_CI_decode_aper;
+per_type_encoder_f RANAP_CI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CI_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CN-DeactivateTrace.c b/src/ranap/RANAP_CN-DeactivateTrace.c
new file mode 100644
index 0000000..d1b013c
--- /dev/null
+++ b/src/ranap/RANAP_CN-DeactivateTrace.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_CN-DeactivateTrace.h"
+
+static int
+memb_cN_DeactivateTrace_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_cN_DeactivateTrace_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_cN_DeactivateTrace_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_cN_DeactivateTrace_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_cN_DeactivateTrace_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_cN_DeactivateTrace_ies_specs_2 = {
+	sizeof(struct cN_DeactivateTrace_ies),
+	offsetof(struct cN_DeactivateTrace_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_cN_DeactivateTrace_ies_2 = {
+	"cN-DeactivateTrace-ies",
+	"cN-DeactivateTrace-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_cN_DeactivateTrace_ies_tags_2,
+	sizeof(asn_DEF_cN_DeactivateTrace_ies_tags_2)
+		/sizeof(asn_DEF_cN_DeactivateTrace_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_cN_DeactivateTrace_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_cN_DeactivateTrace_ies_tags_2)
+		/sizeof(asn_DEF_cN_DeactivateTrace_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_cN_DeactivateTrace_ies_constr_2,
+	asn_MBR_cN_DeactivateTrace_ies_2,
+	1,	/* Single element */
+	&asn_SPC_cN_DeactivateTrace_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_CN_DeactivateTrace_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_CN_DeactivateTrace, cN_DeactivateTrace_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_cN_DeactivateTrace_ies_2,
+		memb_cN_DeactivateTrace_ies_constraint_1,
+		&asn_PER_memb_cN_DeactivateTrace_ies_constr_2,
+		0,
+		"cN-DeactivateTrace-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CN_DeactivateTrace_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_CN_DeactivateTrace_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cN-DeactivateTrace-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_CN_DeactivateTrace_specs_1 = {
+	sizeof(struct RANAP_CN_DeactivateTrace),
+	offsetof(struct RANAP_CN_DeactivateTrace, _asn_ctx),
+	asn_MAP_RANAP_CN_DeactivateTrace_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CN_DeactivateTrace = {
+	"RANAP_CN-DeactivateTrace",
+	"RANAP_CN-DeactivateTrace",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CN_DeactivateTrace_tags_1,
+	sizeof(asn_DEF_RANAP_CN_DeactivateTrace_tags_1)
+		/sizeof(asn_DEF_RANAP_CN_DeactivateTrace_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CN_DeactivateTrace_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CN_DeactivateTrace_tags_1)
+		/sizeof(asn_DEF_RANAP_CN_DeactivateTrace_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_CN_DeactivateTrace_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_CN_DeactivateTrace_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_CN-DeactivateTrace.h b/src/ranap/RANAP_CN-DeactivateTrace.h
new file mode 100644
index 0000000..8be0305
--- /dev/null
+++ b/src/ranap/RANAP_CN-DeactivateTrace.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_CN_DeactivateTrace_H_
+#define	_RANAP_CN_DeactivateTrace_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_CN-DeactivateTrace */
+typedef struct RANAP_CN_DeactivateTrace {
+	struct cN_DeactivateTrace_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} cN_DeactivateTrace_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_CN_DeactivateTrace_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CN_DeactivateTrace;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CN_DeactivateTrace_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CN-DomainIndicator.c b/src/ranap/RANAP_CN-DomainIndicator.c
new file mode 100644
index 0000000..ba1eeef
--- /dev/null
+++ b/src/ranap/RANAP_CN-DomainIndicator.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CN-DomainIndicator.h"
+
+int
+RANAP_CN_DomainIndicator_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_CN_DomainIndicator_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_CN_DomainIndicator_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_CN_DomainIndicator_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_CN_DomainIndicator_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CN_DomainIndicator_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CN_DomainIndicator_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_CN_DomainIndicator_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_CN_DomainIndicator_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CN_DomainIndicator_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CN_DomainIndicator_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_CN_DomainIndicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_CN_DomainIndicator_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CN_DomainIndicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CN_DomainIndicator_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CN_DomainIndicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_CN_DomainIndicator_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CN_DomainIndicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_CN_DomainIndicator_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CN_DomainIndicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_CN_DomainIndicator_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CN_DomainIndicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_CN_DomainIndicator_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 1,  1,  0l,  1l }	/* (0..1) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_CN_DomainIndicator_value2enum_1[] = {
+	{ 0,	9,	"cs-domain" },
+	{ 1,	9,	"ps-domain" }
+};
+static const unsigned int asn_MAP_RANAP_CN_DomainIndicator_enum2value_1[] = {
+	0,	/* cs-domain(0) */
+	1	/* ps-domain(1) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_CN_DomainIndicator_specs_1 = {
+	asn_MAP_RANAP_CN_DomainIndicator_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_CN_DomainIndicator_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CN_DomainIndicator_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CN_DomainIndicator = {
+	"RANAP_CN-DomainIndicator",
+	"RANAP_CN-DomainIndicator",
+	RANAP_CN_DomainIndicator_free,
+	RANAP_CN_DomainIndicator_print,
+	RANAP_CN_DomainIndicator_constraint,
+	RANAP_CN_DomainIndicator_decode_ber,
+	RANAP_CN_DomainIndicator_encode_der,
+	RANAP_CN_DomainIndicator_decode_xer,
+	RANAP_CN_DomainIndicator_encode_xer,
+	RANAP_CN_DomainIndicator_decode_uper,
+	RANAP_CN_DomainIndicator_encode_uper,
+	RANAP_CN_DomainIndicator_decode_aper,
+	RANAP_CN_DomainIndicator_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CN_DomainIndicator_tags_1,
+	sizeof(asn_DEF_RANAP_CN_DomainIndicator_tags_1)
+		/sizeof(asn_DEF_RANAP_CN_DomainIndicator_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CN_DomainIndicator_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CN_DomainIndicator_tags_1)
+		/sizeof(asn_DEF_RANAP_CN_DomainIndicator_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CN_DomainIndicator_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_CN_DomainIndicator_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_CN-DomainIndicator.h b/src/ranap/RANAP_CN-DomainIndicator.h
new file mode 100644
index 0000000..3a63f87
--- /dev/null
+++ b/src/ranap/RANAP_CN-DomainIndicator.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CN_DomainIndicator_H_
+#define	_RANAP_CN_DomainIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_CN_DomainIndicator {
+	RANAP_CN_DomainIndicator_cs_domain	= 0,
+	RANAP_CN_DomainIndicator_ps_domain	= 1
+} e_RANAP_CN_DomainIndicator;
+
+/* RANAP_CN-DomainIndicator */
+typedef long	 RANAP_CN_DomainIndicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CN_DomainIndicator;
+asn_struct_free_f RANAP_CN_DomainIndicator_free;
+asn_struct_print_f RANAP_CN_DomainIndicator_print;
+asn_constr_check_f RANAP_CN_DomainIndicator_constraint;
+ber_type_decoder_f RANAP_CN_DomainIndicator_decode_ber;
+der_type_encoder_f RANAP_CN_DomainIndicator_encode_der;
+xer_type_decoder_f RANAP_CN_DomainIndicator_decode_xer;
+xer_type_encoder_f RANAP_CN_DomainIndicator_encode_xer;
+per_type_decoder_f RANAP_CN_DomainIndicator_decode_uper;
+per_type_encoder_f RANAP_CN_DomainIndicator_encode_uper;
+per_type_decoder_f RANAP_CN_DomainIndicator_decode_aper;
+per_type_encoder_f RANAP_CN_DomainIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CN_DomainIndicator_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CN-ID.c b/src/ranap/RANAP_CN-ID.c
new file mode 100644
index 0000000..53522b4
--- /dev/null
+++ b/src/ranap/RANAP_CN-ID.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CN-ID.h"
+
+int
+RANAP_CN_ID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 4095l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_CN_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_CN_ID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_CN_ID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_CN_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CN_ID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CN_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_CN_ID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_CN_ID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CN_ID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CN_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_CN_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_CN_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CN_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CN_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CN_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_CN_ID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CN_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_CN_ID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CN_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_CN_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CN_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_CN_ID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 12,  12,  0l,  4095l }	/* (0..4095) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CN_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CN_ID = {
+	"RANAP_CN-ID",
+	"RANAP_CN-ID",
+	RANAP_CN_ID_free,
+	RANAP_CN_ID_print,
+	RANAP_CN_ID_constraint,
+	RANAP_CN_ID_decode_ber,
+	RANAP_CN_ID_encode_der,
+	RANAP_CN_ID_decode_xer,
+	RANAP_CN_ID_encode_xer,
+	RANAP_CN_ID_decode_uper,
+	RANAP_CN_ID_encode_uper,
+	RANAP_CN_ID_decode_aper,
+	RANAP_CN_ID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CN_ID_tags_1,
+	sizeof(asn_DEF_RANAP_CN_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_CN_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CN_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CN_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_CN_ID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CN_ID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_CN-ID.h b/src/ranap/RANAP_CN-ID.h
new file mode 100644
index 0000000..2032791
--- /dev/null
+++ b/src/ranap/RANAP_CN-ID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CN_ID_H_
+#define	_RANAP_CN_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_CN-ID */
+typedef long	 RANAP_CN_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CN_ID;
+asn_struct_free_f RANAP_CN_ID_free;
+asn_struct_print_f RANAP_CN_ID_print;
+asn_constr_check_f RANAP_CN_ID_constraint;
+ber_type_decoder_f RANAP_CN_ID_decode_ber;
+der_type_encoder_f RANAP_CN_ID_encode_der;
+xer_type_decoder_f RANAP_CN_ID_decode_xer;
+xer_type_encoder_f RANAP_CN_ID_encode_xer;
+per_type_decoder_f RANAP_CN_ID_decode_uper;
+per_type_encoder_f RANAP_CN_ID_encode_uper;
+per_type_decoder_f RANAP_CN_ID_decode_aper;
+per_type_encoder_f RANAP_CN_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CN_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CN-InvokeTrace.c b/src/ranap/RANAP_CN-InvokeTrace.c
new file mode 100644
index 0000000..980cf6c
--- /dev/null
+++ b/src/ranap/RANAP_CN-InvokeTrace.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_CN-InvokeTrace.h"
+
+static int
+memb_cN_InvokeTrace_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_cN_InvokeTrace_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_cN_InvokeTrace_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_cN_InvokeTrace_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_cN_InvokeTrace_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_cN_InvokeTrace_ies_specs_2 = {
+	sizeof(struct cN_InvokeTrace_ies),
+	offsetof(struct cN_InvokeTrace_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_cN_InvokeTrace_ies_2 = {
+	"cN-InvokeTrace-ies",
+	"cN-InvokeTrace-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_cN_InvokeTrace_ies_tags_2,
+	sizeof(asn_DEF_cN_InvokeTrace_ies_tags_2)
+		/sizeof(asn_DEF_cN_InvokeTrace_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_cN_InvokeTrace_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_cN_InvokeTrace_ies_tags_2)
+		/sizeof(asn_DEF_cN_InvokeTrace_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_cN_InvokeTrace_ies_constr_2,
+	asn_MBR_cN_InvokeTrace_ies_2,
+	1,	/* Single element */
+	&asn_SPC_cN_InvokeTrace_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_CN_InvokeTrace_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_CN_InvokeTrace, cN_InvokeTrace_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_cN_InvokeTrace_ies_2,
+		memb_cN_InvokeTrace_ies_constraint_1,
+		&asn_PER_memb_cN_InvokeTrace_ies_constr_2,
+		0,
+		"cN-InvokeTrace-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CN_InvokeTrace_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_CN_InvokeTrace_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cN-InvokeTrace-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_CN_InvokeTrace_specs_1 = {
+	sizeof(struct RANAP_CN_InvokeTrace),
+	offsetof(struct RANAP_CN_InvokeTrace, _asn_ctx),
+	asn_MAP_RANAP_CN_InvokeTrace_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CN_InvokeTrace = {
+	"RANAP_CN-InvokeTrace",
+	"RANAP_CN-InvokeTrace",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CN_InvokeTrace_tags_1,
+	sizeof(asn_DEF_RANAP_CN_InvokeTrace_tags_1)
+		/sizeof(asn_DEF_RANAP_CN_InvokeTrace_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CN_InvokeTrace_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CN_InvokeTrace_tags_1)
+		/sizeof(asn_DEF_RANAP_CN_InvokeTrace_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_CN_InvokeTrace_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_CN_InvokeTrace_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_CN-InvokeTrace.h b/src/ranap/RANAP_CN-InvokeTrace.h
new file mode 100644
index 0000000..66b7892
--- /dev/null
+++ b/src/ranap/RANAP_CN-InvokeTrace.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_CN_InvokeTrace_H_
+#define	_RANAP_CN_InvokeTrace_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_CN-InvokeTrace */
+typedef struct RANAP_CN_InvokeTrace {
+	struct cN_InvokeTrace_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} cN_InvokeTrace_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_CN_InvokeTrace_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CN_InvokeTrace;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CN_InvokeTrace_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CSFB-Information.c b/src/ranap/RANAP_CSFB-Information.c
new file mode 100644
index 0000000..90246ed
--- /dev/null
+++ b/src/ranap/RANAP_CSFB-Information.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CSFB-Information.h"
+
+int
+RANAP_CSFB_Information_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_CSFB_Information_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_CSFB_Information_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_CSFB_Information_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_CSFB_Information_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CSFB_Information_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CSFB_Information_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_CSFB_Information_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_CSFB_Information_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CSFB_Information_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CSFB_Information_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_CSFB_Information_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_CSFB_Information_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CSFB_Information_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CSFB_Information_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CSFB_Information_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_CSFB_Information_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CSFB_Information_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_CSFB_Information_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CSFB_Information_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_CSFB_Information_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CSFB_Information_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_CSFB_Information_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_CSFB_Information_value2enum_1[] = {
+	{ 0,	4,	"csfb" },
+	{ 1,	18,	"csfb-high-priority" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_CSFB_Information_enum2value_1[] = {
+	0,	/* csfb(0) */
+	1	/* csfb-high-priority(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_CSFB_Information_specs_1 = {
+	asn_MAP_RANAP_CSFB_Information_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_CSFB_Information_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CSFB_Information_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CSFB_Information = {
+	"RANAP_CSFB-Information",
+	"RANAP_CSFB-Information",
+	RANAP_CSFB_Information_free,
+	RANAP_CSFB_Information_print,
+	RANAP_CSFB_Information_constraint,
+	RANAP_CSFB_Information_decode_ber,
+	RANAP_CSFB_Information_encode_der,
+	RANAP_CSFB_Information_decode_xer,
+	RANAP_CSFB_Information_encode_xer,
+	RANAP_CSFB_Information_decode_uper,
+	RANAP_CSFB_Information_encode_uper,
+	RANAP_CSFB_Information_decode_aper,
+	RANAP_CSFB_Information_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CSFB_Information_tags_1,
+	sizeof(asn_DEF_RANAP_CSFB_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_CSFB_Information_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CSFB_Information_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CSFB_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_CSFB_Information_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CSFB_Information_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_CSFB_Information_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_CSFB-Information.h b/src/ranap/RANAP_CSFB-Information.h
new file mode 100644
index 0000000..8a64b23
--- /dev/null
+++ b/src/ranap/RANAP_CSFB-Information.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CSFB_Information_H_
+#define	_RANAP_CSFB_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_CSFB_Information {
+	RANAP_CSFB_Information_csfb	= 0,
+	RANAP_CSFB_Information_csfb_high_priority	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_CSFB_Information;
+
+/* RANAP_CSFB-Information */
+typedef long	 RANAP_CSFB_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CSFB_Information;
+asn_struct_free_f RANAP_CSFB_Information_free;
+asn_struct_print_f RANAP_CSFB_Information_print;
+asn_constr_check_f RANAP_CSFB_Information_constraint;
+ber_type_decoder_f RANAP_CSFB_Information_decode_ber;
+der_type_encoder_f RANAP_CSFB_Information_encode_der;
+xer_type_decoder_f RANAP_CSFB_Information_decode_xer;
+xer_type_encoder_f RANAP_CSFB_Information_encode_xer;
+per_type_decoder_f RANAP_CSFB_Information_decode_uper;
+per_type_encoder_f RANAP_CSFB_Information_encode_uper;
+per_type_decoder_f RANAP_CSFB_Information_decode_aper;
+per_type_encoder_f RANAP_CSFB_Information_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CSFB_Information_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CSG-Id-List.c b/src/ranap/RANAP_CSG-Id-List.c
new file mode 100644
index 0000000..d3450c9
--- /dev/null
+++ b/src/ranap/RANAP_CSG-Id-List.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CSG-Id-List.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_CSG_Id_List_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 8,  8,  1l,  256l }	/* (SIZE(1..256)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_CSG_Id_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_CSG_Id,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CSG_Id_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_CSG_Id_List_specs_1 = {
+	sizeof(struct RANAP_CSG_Id_List),
+	offsetof(struct RANAP_CSG_Id_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CSG_Id_List = {
+	"RANAP_CSG-Id-List",
+	"RANAP_CSG-Id-List",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CSG_Id_List_tags_1,
+	sizeof(asn_DEF_RANAP_CSG_Id_List_tags_1)
+		/sizeof(asn_DEF_RANAP_CSG_Id_List_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CSG_Id_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CSG_Id_List_tags_1)
+		/sizeof(asn_DEF_RANAP_CSG_Id_List_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CSG_Id_List_constr_1,
+	asn_MBR_RANAP_CSG_Id_List_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_CSG_Id_List_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_CSG-Id-List.h b/src/ranap/RANAP_CSG-Id-List.h
new file mode 100644
index 0000000..0069c33
--- /dev/null
+++ b/src/ranap/RANAP_CSG-Id-List.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CSG_Id_List_H_
+#define	_RANAP_CSG_Id_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_CSG-Id.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_CSG-Id-List */
+typedef struct RANAP_CSG_Id_List {
+	A_SEQUENCE_OF(RANAP_CSG_Id_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_CSG_Id_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CSG_Id_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CSG_Id_List_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CSG-Id.c b/src/ranap/RANAP_CSG-Id.c
new file mode 100644
index 0000000..6e2303e
--- /dev/null
+++ b/src/ranap/RANAP_CSG-Id.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CSG-Id.h"
+
+int
+RANAP_CSG_Id_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 27l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_CSG_Id_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_BIT_STRING.free_struct;
+	td->print_struct   = asn_DEF_BIT_STRING.print_struct;
+	td->check_constraints = asn_DEF_BIT_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_BIT_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_BIT_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_BIT_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_BIT_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_BIT_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_BIT_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_BIT_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_BIT_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_BIT_STRING.per_constraints;
+	td->elements       = asn_DEF_BIT_STRING.elements;
+	td->elements_count = asn_DEF_BIT_STRING.elements_count;
+	td->specifics      = asn_DEF_BIT_STRING.specifics;
+}
+
+void
+RANAP_CSG_Id_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_CSG_Id_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_CSG_Id_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CSG_Id_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CSG_Id_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_CSG_Id_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_CSG_Id_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CSG_Id_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CSG_Id_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_CSG_Id_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_CSG_Id_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CSG_Id_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CSG_Id_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CSG_Id_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_CSG_Id_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CSG_Id_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_CSG_Id_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CSG_Id_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_CSG_Id_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CSG_Id_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_CSG_Id_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  27l,  27l }	/* (SIZE(27..27)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CSG_Id_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CSG_Id = {
+	"RANAP_CSG-Id",
+	"RANAP_CSG-Id",
+	RANAP_CSG_Id_free,
+	RANAP_CSG_Id_print,
+	RANAP_CSG_Id_constraint,
+	RANAP_CSG_Id_decode_ber,
+	RANAP_CSG_Id_encode_der,
+	RANAP_CSG_Id_decode_xer,
+	RANAP_CSG_Id_encode_xer,
+	RANAP_CSG_Id_decode_uper,
+	RANAP_CSG_Id_encode_uper,
+	RANAP_CSG_Id_decode_aper,
+	RANAP_CSG_Id_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CSG_Id_tags_1,
+	sizeof(asn_DEF_RANAP_CSG_Id_tags_1)
+		/sizeof(asn_DEF_RANAP_CSG_Id_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CSG_Id_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CSG_Id_tags_1)
+		/sizeof(asn_DEF_RANAP_CSG_Id_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CSG_Id_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_CSG-Id.h b/src/ranap/RANAP_CSG-Id.h
new file mode 100644
index 0000000..57dd868
--- /dev/null
+++ b/src/ranap/RANAP_CSG-Id.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CSG_Id_H_
+#define	_RANAP_CSG_Id_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_CSG-Id */
+typedef BIT_STRING_t	 RANAP_CSG_Id_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CSG_Id;
+asn_struct_free_f RANAP_CSG_Id_free;
+asn_struct_print_f RANAP_CSG_Id_print;
+asn_constr_check_f RANAP_CSG_Id_constraint;
+ber_type_decoder_f RANAP_CSG_Id_decode_ber;
+der_type_encoder_f RANAP_CSG_Id_encode_der;
+xer_type_decoder_f RANAP_CSG_Id_decode_xer;
+xer_type_encoder_f RANAP_CSG_Id_encode_xer;
+per_type_decoder_f RANAP_CSG_Id_decode_uper;
+per_type_encoder_f RANAP_CSG_Id_encode_uper;
+per_type_decoder_f RANAP_CSG_Id_decode_aper;
+per_type_encoder_f RANAP_CSG_Id_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CSG_Id_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CSG-Membership-Status.c b/src/ranap/RANAP_CSG-Membership-Status.c
new file mode 100644
index 0000000..76b80f7
--- /dev/null
+++ b/src/ranap/RANAP_CSG-Membership-Status.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CSG-Membership-Status.h"
+
+int
+RANAP_CSG_Membership_Status_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_CSG_Membership_Status_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_CSG_Membership_Status_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_CSG_Membership_Status_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_CSG_Membership_Status_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CSG_Membership_Status_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CSG_Membership_Status_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_CSG_Membership_Status_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_CSG_Membership_Status_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CSG_Membership_Status_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CSG_Membership_Status_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_CSG_Membership_Status_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_CSG_Membership_Status_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CSG_Membership_Status_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CSG_Membership_Status_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CSG_Membership_Status_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_CSG_Membership_Status_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CSG_Membership_Status_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_CSG_Membership_Status_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CSG_Membership_Status_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_CSG_Membership_Status_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CSG_Membership_Status_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_CSG_Membership_Status_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_CSG_Membership_Status_value2enum_1[] = {
+	{ 0,	6,	"member" },
+	{ 1,	10,	"non-member" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_CSG_Membership_Status_enum2value_1[] = {
+	0,	/* member(0) */
+	1	/* non-member(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_CSG_Membership_Status_specs_1 = {
+	asn_MAP_RANAP_CSG_Membership_Status_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_CSG_Membership_Status_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CSG_Membership_Status_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CSG_Membership_Status = {
+	"RANAP_CSG-Membership-Status",
+	"RANAP_CSG-Membership-Status",
+	RANAP_CSG_Membership_Status_free,
+	RANAP_CSG_Membership_Status_print,
+	RANAP_CSG_Membership_Status_constraint,
+	RANAP_CSG_Membership_Status_decode_ber,
+	RANAP_CSG_Membership_Status_encode_der,
+	RANAP_CSG_Membership_Status_decode_xer,
+	RANAP_CSG_Membership_Status_encode_xer,
+	RANAP_CSG_Membership_Status_decode_uper,
+	RANAP_CSG_Membership_Status_encode_uper,
+	RANAP_CSG_Membership_Status_decode_aper,
+	RANAP_CSG_Membership_Status_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CSG_Membership_Status_tags_1,
+	sizeof(asn_DEF_RANAP_CSG_Membership_Status_tags_1)
+		/sizeof(asn_DEF_RANAP_CSG_Membership_Status_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CSG_Membership_Status_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CSG_Membership_Status_tags_1)
+		/sizeof(asn_DEF_RANAP_CSG_Membership_Status_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CSG_Membership_Status_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_CSG_Membership_Status_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_CSG-Membership-Status.h b/src/ranap/RANAP_CSG-Membership-Status.h
new file mode 100644
index 0000000..eeeae70
--- /dev/null
+++ b/src/ranap/RANAP_CSG-Membership-Status.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CSG_Membership_Status_H_
+#define	_RANAP_CSG_Membership_Status_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_CSG_Membership_Status {
+	RANAP_CSG_Membership_Status_member	= 0,
+	RANAP_CSG_Membership_Status_non_member	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_CSG_Membership_Status;
+
+/* RANAP_CSG-Membership-Status */
+typedef long	 RANAP_CSG_Membership_Status_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CSG_Membership_Status;
+asn_struct_free_f RANAP_CSG_Membership_Status_free;
+asn_struct_print_f RANAP_CSG_Membership_Status_print;
+asn_constr_check_f RANAP_CSG_Membership_Status_constraint;
+ber_type_decoder_f RANAP_CSG_Membership_Status_decode_ber;
+der_type_encoder_f RANAP_CSG_Membership_Status_encode_der;
+xer_type_decoder_f RANAP_CSG_Membership_Status_decode_xer;
+xer_type_encoder_f RANAP_CSG_Membership_Status_encode_xer;
+per_type_decoder_f RANAP_CSG_Membership_Status_decode_uper;
+per_type_encoder_f RANAP_CSG_Membership_Status_encode_uper;
+per_type_decoder_f RANAP_CSG_Membership_Status_decode_aper;
+per_type_encoder_f RANAP_CSG_Membership_Status_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CSG_Membership_Status_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Cause.c b/src/ranap/RANAP_Cause.c
new file mode 100644
index 0000000..718167b
--- /dev/null
+++ b/src/ranap/RANAP_Cause.c
@@ -0,0 +1,122 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Cause.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Cause_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0l,  5l }	/* (0..5,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Cause_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Cause, choice.radioNetwork),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CauseRadioNetwork,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"radioNetwork"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Cause, choice.transmissionNetwork),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CauseTransmissionNetwork,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"transmissionNetwork"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Cause, choice.nAS),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CauseNAS,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"nAS"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Cause, choice.protocol),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CauseProtocol,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"protocol"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Cause, choice.misc),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CauseMisc,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"misc"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Cause, choice.non_Standard),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CauseNon_Standard,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"non-Standard"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Cause, choice.radioNetworkExtension),
+		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CauseRadioNetworkExtension,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"radioNetworkExtension"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Cause_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transmissionNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nAS */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* misc */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* non-Standard */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* radioNetworkExtension */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_Cause_specs_1 = {
+	sizeof(struct RANAP_Cause),
+	offsetof(struct RANAP_Cause, _asn_ctx),
+	offsetof(struct RANAP_Cause, present),
+	sizeof(((struct RANAP_Cause *)0)->present),
+	asn_MAP_RANAP_Cause_tag2el_1,
+	7,	/* Count of tags in the map */
+	0,
+	6	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Cause = {
+	"RANAP_Cause",
+	"RANAP_Cause",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_Cause_constr_1,
+	asn_MBR_RANAP_Cause_1,
+	7,	/* Elements count */
+	&asn_SPC_RANAP_Cause_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Cause.h b/src/ranap/RANAP_Cause.h
new file mode 100644
index 0000000..156504f
--- /dev/null
+++ b/src/ranap/RANAP_Cause.h
@@ -0,0 +1,69 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Cause_H_
+#define	_RANAP_Cause_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_CauseRadioNetwork.h"
+#include "RANAP_CauseTransmissionNetwork.h"
+#include "RANAP_CauseNAS.h"
+#include "RANAP_CauseProtocol.h"
+#include "RANAP_CauseMisc.h"
+#include "RANAP_CauseNon-Standard.h"
+#include "RANAP_CauseRadioNetworkExtension.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_Cause_PR {
+	RANAP_Cause_PR_NOTHING,	/* No components present */
+	RANAP_Cause_PR_radioNetwork,
+	RANAP_Cause_PR_transmissionNetwork,
+	RANAP_Cause_PR_nAS,
+	RANAP_Cause_PR_protocol,
+	RANAP_Cause_PR_misc,
+	RANAP_Cause_PR_non_Standard,
+	/* Extensions may appear below */
+	RANAP_Cause_PR_radioNetworkExtension
+} RANAP_Cause_PR;
+
+/* RANAP_Cause */
+typedef struct RANAP_Cause {
+	RANAP_Cause_PR present;
+	union RANAP_Cause_u {
+		RANAP_CauseRadioNetwork_t	 radioNetwork;
+		RANAP_CauseTransmissionNetwork_t	 transmissionNetwork;
+		RANAP_CauseNAS_t	 nAS;
+		RANAP_CauseProtocol_t	 protocol;
+		RANAP_CauseMisc_t	 misc;
+		RANAP_CauseNon_Standard_t	 non_Standard;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+		RANAP_CauseRadioNetworkExtension_t	 radioNetworkExtension;
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Cause_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Cause;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Cause_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CauseMisc.c b/src/ranap/RANAP_CauseMisc.c
new file mode 100644
index 0000000..9a8d7e3
--- /dev/null
+++ b/src/ranap/RANAP_CauseMisc.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CauseMisc.h"
+
+int
+RANAP_CauseMisc_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 113l && value <= 128l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_CauseMisc_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_CauseMisc_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_CauseMisc_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_CauseMisc_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseMisc_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseMisc_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_CauseMisc_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_CauseMisc_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseMisc_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseMisc_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_CauseMisc_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_CauseMisc_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseMisc_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseMisc_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CauseMisc_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_CauseMisc_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CauseMisc_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_CauseMisc_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CauseMisc_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_CauseMisc_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CauseMisc_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_CauseMisc_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 4,  4,  113l,  128l }	/* (113..128) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CauseMisc_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CauseMisc = {
+	"RANAP_CauseMisc",
+	"RANAP_CauseMisc",
+	RANAP_CauseMisc_free,
+	RANAP_CauseMisc_print,
+	RANAP_CauseMisc_constraint,
+	RANAP_CauseMisc_decode_ber,
+	RANAP_CauseMisc_encode_der,
+	RANAP_CauseMisc_decode_xer,
+	RANAP_CauseMisc_encode_xer,
+	RANAP_CauseMisc_decode_uper,
+	RANAP_CauseMisc_encode_uper,
+	RANAP_CauseMisc_decode_aper,
+	RANAP_CauseMisc_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CauseMisc_tags_1,
+	sizeof(asn_DEF_RANAP_CauseMisc_tags_1)
+		/sizeof(asn_DEF_RANAP_CauseMisc_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CauseMisc_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CauseMisc_tags_1)
+		/sizeof(asn_DEF_RANAP_CauseMisc_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CauseMisc_constr_1,
+	0, 0,	/* Defined elsewhere */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_CauseMisc.h b/src/ranap/RANAP_CauseMisc.h
new file mode 100644
index 0000000..69ff507
--- /dev/null
+++ b/src/ranap/RANAP_CauseMisc.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CauseMisc_H_
+#define	_RANAP_CauseMisc_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_CauseMisc {
+	RANAP_CauseMisc_om_intervention	= 113,
+	RANAP_CauseMisc_no_resource_available	= 114,
+	RANAP_CauseMisc_unspecified_failure	= 115,
+	RANAP_CauseMisc_network_optimisation	= 116
+} e_RANAP_CauseMisc;
+
+/* RANAP_CauseMisc */
+typedef long	 RANAP_CauseMisc_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CauseMisc;
+asn_struct_free_f RANAP_CauseMisc_free;
+asn_struct_print_f RANAP_CauseMisc_print;
+asn_constr_check_f RANAP_CauseMisc_constraint;
+ber_type_decoder_f RANAP_CauseMisc_decode_ber;
+der_type_encoder_f RANAP_CauseMisc_encode_der;
+xer_type_decoder_f RANAP_CauseMisc_decode_xer;
+xer_type_encoder_f RANAP_CauseMisc_encode_xer;
+per_type_decoder_f RANAP_CauseMisc_decode_uper;
+per_type_encoder_f RANAP_CauseMisc_encode_uper;
+per_type_decoder_f RANAP_CauseMisc_decode_aper;
+per_type_encoder_f RANAP_CauseMisc_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CauseMisc_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CauseNAS.c b/src/ranap/RANAP_CauseNAS.c
new file mode 100644
index 0000000..7683cf1
--- /dev/null
+++ b/src/ranap/RANAP_CauseNAS.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CauseNAS.h"
+
+int
+RANAP_CauseNAS_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 81l && value <= 96l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_CauseNAS_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_CauseNAS_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_CauseNAS_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_CauseNAS_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseNAS_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseNAS_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_CauseNAS_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_CauseNAS_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseNAS_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseNAS_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_CauseNAS_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_CauseNAS_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseNAS_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseNAS_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CauseNAS_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_CauseNAS_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CauseNAS_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_CauseNAS_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CauseNAS_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_CauseNAS_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CauseNAS_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_CauseNAS_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 4,  4,  81l,  96l }	/* (81..96) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CauseNAS_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CauseNAS = {
+	"RANAP_CauseNAS",
+	"RANAP_CauseNAS",
+	RANAP_CauseNAS_free,
+	RANAP_CauseNAS_print,
+	RANAP_CauseNAS_constraint,
+	RANAP_CauseNAS_decode_ber,
+	RANAP_CauseNAS_encode_der,
+	RANAP_CauseNAS_decode_xer,
+	RANAP_CauseNAS_encode_xer,
+	RANAP_CauseNAS_decode_uper,
+	RANAP_CauseNAS_encode_uper,
+	RANAP_CauseNAS_decode_aper,
+	RANAP_CauseNAS_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CauseNAS_tags_1,
+	sizeof(asn_DEF_RANAP_CauseNAS_tags_1)
+		/sizeof(asn_DEF_RANAP_CauseNAS_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CauseNAS_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CauseNAS_tags_1)
+		/sizeof(asn_DEF_RANAP_CauseNAS_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CauseNAS_constr_1,
+	0, 0,	/* Defined elsewhere */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_CauseNAS.h b/src/ranap/RANAP_CauseNAS.h
new file mode 100644
index 0000000..90f60a4
--- /dev/null
+++ b/src/ranap/RANAP_CauseNAS.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CauseNAS_H_
+#define	_RANAP_CauseNAS_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_CauseNAS {
+	RANAP_CauseNAS_user_restriction_start_indication	= 81,
+	RANAP_CauseNAS_user_restriction_end_indication	= 82,
+	RANAP_CauseNAS_normal_release	= 83,
+	RANAP_CauseNAS_csg_subscription_expiry	= 84
+} e_RANAP_CauseNAS;
+
+/* RANAP_CauseNAS */
+typedef long	 RANAP_CauseNAS_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CauseNAS;
+asn_struct_free_f RANAP_CauseNAS_free;
+asn_struct_print_f RANAP_CauseNAS_print;
+asn_constr_check_f RANAP_CauseNAS_constraint;
+ber_type_decoder_f RANAP_CauseNAS_decode_ber;
+der_type_encoder_f RANAP_CauseNAS_encode_der;
+xer_type_decoder_f RANAP_CauseNAS_decode_xer;
+xer_type_encoder_f RANAP_CauseNAS_encode_xer;
+per_type_decoder_f RANAP_CauseNAS_decode_uper;
+per_type_encoder_f RANAP_CauseNAS_encode_uper;
+per_type_decoder_f RANAP_CauseNAS_decode_aper;
+per_type_encoder_f RANAP_CauseNAS_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CauseNAS_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CauseNon-Standard.c b/src/ranap/RANAP_CauseNon-Standard.c
new file mode 100644
index 0000000..32ca44d
--- /dev/null
+++ b/src/ranap/RANAP_CauseNon-Standard.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CauseNon-Standard.h"
+
+int
+RANAP_CauseNon_Standard_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 129l && value <= 256l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_CauseNon_Standard_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_CauseNon_Standard_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_CauseNon_Standard_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_CauseNon_Standard_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseNon_Standard_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseNon_Standard_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_CauseNon_Standard_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_CauseNon_Standard_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseNon_Standard_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseNon_Standard_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_CauseNon_Standard_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_CauseNon_Standard_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseNon_Standard_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseNon_Standard_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CauseNon_Standard_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_CauseNon_Standard_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CauseNon_Standard_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_CauseNon_Standard_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CauseNon_Standard_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_CauseNon_Standard_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CauseNon_Standard_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_CauseNon_Standard_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  129l,  256l }	/* (129..256) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CauseNon_Standard_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CauseNon_Standard = {
+	"RANAP_CauseNon-Standard",
+	"RANAP_CauseNon-Standard",
+	RANAP_CauseNon_Standard_free,
+	RANAP_CauseNon_Standard_print,
+	RANAP_CauseNon_Standard_constraint,
+	RANAP_CauseNon_Standard_decode_ber,
+	RANAP_CauseNon_Standard_encode_der,
+	RANAP_CauseNon_Standard_decode_xer,
+	RANAP_CauseNon_Standard_encode_xer,
+	RANAP_CauseNon_Standard_decode_uper,
+	RANAP_CauseNon_Standard_encode_uper,
+	RANAP_CauseNon_Standard_decode_aper,
+	RANAP_CauseNon_Standard_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CauseNon_Standard_tags_1,
+	sizeof(asn_DEF_RANAP_CauseNon_Standard_tags_1)
+		/sizeof(asn_DEF_RANAP_CauseNon_Standard_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CauseNon_Standard_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CauseNon_Standard_tags_1)
+		/sizeof(asn_DEF_RANAP_CauseNon_Standard_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CauseNon_Standard_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_CauseNon-Standard.h b/src/ranap/RANAP_CauseNon-Standard.h
new file mode 100644
index 0000000..22e85e4
--- /dev/null
+++ b/src/ranap/RANAP_CauseNon-Standard.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CauseNon_Standard_H_
+#define	_RANAP_CauseNon_Standard_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_CauseNon-Standard */
+typedef long	 RANAP_CauseNon_Standard_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CauseNon_Standard;
+asn_struct_free_f RANAP_CauseNon_Standard_free;
+asn_struct_print_f RANAP_CauseNon_Standard_print;
+asn_constr_check_f RANAP_CauseNon_Standard_constraint;
+ber_type_decoder_f RANAP_CauseNon_Standard_decode_ber;
+der_type_encoder_f RANAP_CauseNon_Standard_encode_der;
+xer_type_decoder_f RANAP_CauseNon_Standard_decode_xer;
+xer_type_encoder_f RANAP_CauseNon_Standard_encode_xer;
+per_type_decoder_f RANAP_CauseNon_Standard_decode_uper;
+per_type_encoder_f RANAP_CauseNon_Standard_encode_uper;
+per_type_decoder_f RANAP_CauseNon_Standard_decode_aper;
+per_type_encoder_f RANAP_CauseNon_Standard_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CauseNon_Standard_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CauseProtocol.c b/src/ranap/RANAP_CauseProtocol.c
new file mode 100644
index 0000000..3cf3bcb
--- /dev/null
+++ b/src/ranap/RANAP_CauseProtocol.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CauseProtocol.h"
+
+int
+RANAP_CauseProtocol_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 97l && value <= 112l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_CauseProtocol_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_CauseProtocol_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_CauseProtocol_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_CauseProtocol_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseProtocol_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseProtocol_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_CauseProtocol_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_CauseProtocol_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseProtocol_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseProtocol_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_CauseProtocol_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_CauseProtocol_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseProtocol_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseProtocol_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CauseProtocol_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_CauseProtocol_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CauseProtocol_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_CauseProtocol_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CauseProtocol_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_CauseProtocol_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CauseProtocol_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_CauseProtocol_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 4,  4,  97l,  112l }	/* (97..112) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CauseProtocol_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CauseProtocol = {
+	"RANAP_CauseProtocol",
+	"RANAP_CauseProtocol",
+	RANAP_CauseProtocol_free,
+	RANAP_CauseProtocol_print,
+	RANAP_CauseProtocol_constraint,
+	RANAP_CauseProtocol_decode_ber,
+	RANAP_CauseProtocol_encode_der,
+	RANAP_CauseProtocol_decode_xer,
+	RANAP_CauseProtocol_encode_xer,
+	RANAP_CauseProtocol_decode_uper,
+	RANAP_CauseProtocol_encode_uper,
+	RANAP_CauseProtocol_decode_aper,
+	RANAP_CauseProtocol_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CauseProtocol_tags_1,
+	sizeof(asn_DEF_RANAP_CauseProtocol_tags_1)
+		/sizeof(asn_DEF_RANAP_CauseProtocol_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CauseProtocol_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CauseProtocol_tags_1)
+		/sizeof(asn_DEF_RANAP_CauseProtocol_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CauseProtocol_constr_1,
+	0, 0,	/* Defined elsewhere */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_CauseProtocol.h b/src/ranap/RANAP_CauseProtocol.h
new file mode 100644
index 0000000..d05f6e4
--- /dev/null
+++ b/src/ranap/RANAP_CauseProtocol.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CauseProtocol_H_
+#define	_RANAP_CauseProtocol_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_CauseProtocol {
+	RANAP_CauseProtocol_transfer_syntax_error	= 97,
+	RANAP_CauseProtocol_semantic_error	= 98,
+	RANAP_CauseProtocol_message_not_compatible_with_receiver_state	= 99,
+	RANAP_CauseProtocol_abstract_syntax_error_reject	= 100,
+	RANAP_CauseProtocol_abstract_syntax_error_ignore_and_notify	= 101,
+	RANAP_CauseProtocol_abstract_syntax_error_falsely_constructed_message	= 102
+} e_RANAP_CauseProtocol;
+
+/* RANAP_CauseProtocol */
+typedef long	 RANAP_CauseProtocol_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CauseProtocol;
+asn_struct_free_f RANAP_CauseProtocol_free;
+asn_struct_print_f RANAP_CauseProtocol_print;
+asn_constr_check_f RANAP_CauseProtocol_constraint;
+ber_type_decoder_f RANAP_CauseProtocol_decode_ber;
+der_type_encoder_f RANAP_CauseProtocol_encode_der;
+xer_type_decoder_f RANAP_CauseProtocol_decode_xer;
+xer_type_encoder_f RANAP_CauseProtocol_encode_xer;
+per_type_decoder_f RANAP_CauseProtocol_decode_uper;
+per_type_encoder_f RANAP_CauseProtocol_encode_uper;
+per_type_decoder_f RANAP_CauseProtocol_decode_aper;
+per_type_encoder_f RANAP_CauseProtocol_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CauseProtocol_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CauseRadioNetwork.c b/src/ranap/RANAP_CauseRadioNetwork.c
new file mode 100644
index 0000000..4f94812
--- /dev/null
+++ b/src/ranap/RANAP_CauseRadioNetwork.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CauseRadioNetwork.h"
+
+int
+RANAP_CauseRadioNetwork_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 64l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_CauseRadioNetwork_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_CauseRadioNetwork_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_CauseRadioNetwork_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_CauseRadioNetwork_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseRadioNetwork_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseRadioNetwork_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_CauseRadioNetwork_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_CauseRadioNetwork_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseRadioNetwork_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseRadioNetwork_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_CauseRadioNetwork_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_CauseRadioNetwork_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseRadioNetwork_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseRadioNetwork_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CauseRadioNetwork_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_CauseRadioNetwork_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CauseRadioNetwork_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_CauseRadioNetwork_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CauseRadioNetwork_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_CauseRadioNetwork_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CauseRadioNetwork_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_CauseRadioNetwork_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 6,  6,  1l,  64l }	/* (1..64) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CauseRadioNetwork_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CauseRadioNetwork = {
+	"RANAP_CauseRadioNetwork",
+	"RANAP_CauseRadioNetwork",
+	RANAP_CauseRadioNetwork_free,
+	RANAP_CauseRadioNetwork_print,
+	RANAP_CauseRadioNetwork_constraint,
+	RANAP_CauseRadioNetwork_decode_ber,
+	RANAP_CauseRadioNetwork_encode_der,
+	RANAP_CauseRadioNetwork_decode_xer,
+	RANAP_CauseRadioNetwork_encode_xer,
+	RANAP_CauseRadioNetwork_decode_uper,
+	RANAP_CauseRadioNetwork_encode_uper,
+	RANAP_CauseRadioNetwork_decode_aper,
+	RANAP_CauseRadioNetwork_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CauseRadioNetwork_tags_1,
+	sizeof(asn_DEF_RANAP_CauseRadioNetwork_tags_1)
+		/sizeof(asn_DEF_RANAP_CauseRadioNetwork_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CauseRadioNetwork_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CauseRadioNetwork_tags_1)
+		/sizeof(asn_DEF_RANAP_CauseRadioNetwork_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CauseRadioNetwork_constr_1,
+	0, 0,	/* Defined elsewhere */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_CauseRadioNetwork.h b/src/ranap/RANAP_CauseRadioNetwork.h
new file mode 100644
index 0000000..5abcbc9
--- /dev/null
+++ b/src/ranap/RANAP_CauseRadioNetwork.h
@@ -0,0 +1,110 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CauseRadioNetwork_H_
+#define	_RANAP_CauseRadioNetwork_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_CauseRadioNetwork {
+	RANAP_CauseRadioNetwork_rab_pre_empted	= 1,
+	RANAP_CauseRadioNetwork_trelocoverall_expiry	= 2,
+	RANAP_CauseRadioNetwork_trelocprep_expiry	= 3,
+	RANAP_CauseRadioNetwork_treloccomplete_expiry	= 4,
+	RANAP_CauseRadioNetwork_tqueing_expiry	= 5,
+	RANAP_CauseRadioNetwork_relocation_triggered	= 6,
+	RANAP_CauseRadioNetwork_trellocalloc_expiry	= 7,
+	RANAP_CauseRadioNetwork_unable_to_establish_during_relocation	= 8,
+	RANAP_CauseRadioNetwork_unknown_target_rnc	= 9,
+	RANAP_CauseRadioNetwork_relocation_cancelled	= 10,
+	RANAP_CauseRadioNetwork_successful_relocation	= 11,
+	RANAP_CauseRadioNetwork_requested_ciphering_and_or_integrity_protection_algorithms_not_supported	= 12,
+	RANAP_CauseRadioNetwork_conflict_with_already_existing_integrity_protection_and_or_ciphering_information	= 13,
+	RANAP_CauseRadioNetwork_failure_in_the_radio_interface_procedure	= 14,
+	RANAP_CauseRadioNetwork_release_due_to_utran_generated_reason	= 15,
+	RANAP_CauseRadioNetwork_user_inactivity	= 16,
+	RANAP_CauseRadioNetwork_time_critical_relocation	= 17,
+	RANAP_CauseRadioNetwork_requested_traffic_class_not_available	= 18,
+	RANAP_CauseRadioNetwork_invalid_rab_parameters_value	= 19,
+	RANAP_CauseRadioNetwork_requested_maximum_bit_rate_not_available	= 20,
+	RANAP_CauseRadioNetwork_requested_guaranteed_bit_rate_not_available	= 21,
+	RANAP_CauseRadioNetwork_requested_transfer_delay_not_achievable	= 22,
+	RANAP_CauseRadioNetwork_invalid_rab_parameters_combination	= 23,
+	RANAP_CauseRadioNetwork_condition_violation_for_sdu_parameters	= 24,
+	RANAP_CauseRadioNetwork_condition_violation_for_traffic_handling_priority	= 25,
+	RANAP_CauseRadioNetwork_condition_violation_for_guaranteed_bit_rate	= 26,
+	RANAP_CauseRadioNetwork_user_plane_versions_not_supported	= 27,
+	RANAP_CauseRadioNetwork_iu_up_failure	= 28,
+	RANAP_CauseRadioNetwork_relocation_failure_in_target_CN_RNC_or_target_system	= 29,
+	RANAP_CauseRadioNetwork_invalid_RAB_ID	= 30,
+	RANAP_CauseRadioNetwork_no_remaining_rab	= 31,
+	RANAP_CauseRadioNetwork_interaction_with_other_procedure	= 32,
+	RANAP_CauseRadioNetwork_requested_maximum_bit_rate_for_dl_not_available	= 33,
+	RANAP_CauseRadioNetwork_requested_maximum_bit_rate_for_ul_not_available	= 34,
+	RANAP_CauseRadioNetwork_requested_guaranteed_bit_rate_for_dl_not_available	= 35,
+	RANAP_CauseRadioNetwork_requested_guaranteed_bit_rate_for_ul_not_available	= 36,
+	RANAP_CauseRadioNetwork_repeated_integrity_checking_failure	= 37,
+	RANAP_CauseRadioNetwork_requested_request_type_not_supported	= 38,
+	RANAP_CauseRadioNetwork_request_superseded	= 39,
+	RANAP_CauseRadioNetwork_release_due_to_UE_generated_signalling_connection_release	= 40,
+	RANAP_CauseRadioNetwork_resource_optimisation_relocation	= 41,
+	RANAP_CauseRadioNetwork_requested_information_not_available	= 42,
+	RANAP_CauseRadioNetwork_relocation_desirable_for_radio_reasons	= 43,
+	RANAP_CauseRadioNetwork_relocation_not_supported_in_target_RNC_or_target_system	= 44,
+	RANAP_CauseRadioNetwork_directed_retry	= 45,
+	RANAP_CauseRadioNetwork_radio_connection_with_UE_Lost	= 46,
+	RANAP_CauseRadioNetwork_rNC_unable_to_establish_all_RFCs	= 47,
+	RANAP_CauseRadioNetwork_deciphering_keys_not_available	= 48,
+	RANAP_CauseRadioNetwork_dedicated_assistance_data_not_available	= 49,
+	RANAP_CauseRadioNetwork_relocation_target_not_allowed	= 50,
+	RANAP_CauseRadioNetwork_location_reporting_congestion	= 51,
+	RANAP_CauseRadioNetwork_reduce_load_in_serving_cell	= 52,
+	RANAP_CauseRadioNetwork_no_radio_resources_available_in_target_cell	= 53,
+	RANAP_CauseRadioNetwork_gERAN_Iumode_failure	= 54,
+	RANAP_CauseRadioNetwork_access_restricted_due_to_shared_networks	= 55,
+	RANAP_CauseRadioNetwork_incoming_relocation_not_supported_due_to_PUESBINE_feature	= 56,
+	RANAP_CauseRadioNetwork_traffic_load_in_the_target_cell_higher_than_in_the_source_cell	= 57,
+	RANAP_CauseRadioNetwork_mBMS_no_multicast_service_for_this_UE	= 58,
+	RANAP_CauseRadioNetwork_mBMS_unknown_UE_ID	= 59,
+	RANAP_CauseRadioNetwork_successful_MBMS_session_start_no_data_bearer_necessary	= 60,
+	RANAP_CauseRadioNetwork_mBMS_superseded_due_to_NNSF	= 61,
+	RANAP_CauseRadioNetwork_mBMS_UE_linking_already_done	= 62,
+	RANAP_CauseRadioNetwork_mBMS_UE_de_linking_failure_no_existing_UE_linking	= 63,
+	RANAP_CauseRadioNetwork_tMGI_unknown	= 64
+} e_RANAP_CauseRadioNetwork;
+
+/* RANAP_CauseRadioNetwork */
+typedef long	 RANAP_CauseRadioNetwork_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CauseRadioNetwork;
+asn_struct_free_f RANAP_CauseRadioNetwork_free;
+asn_struct_print_f RANAP_CauseRadioNetwork_print;
+asn_constr_check_f RANAP_CauseRadioNetwork_constraint;
+ber_type_decoder_f RANAP_CauseRadioNetwork_decode_ber;
+der_type_encoder_f RANAP_CauseRadioNetwork_encode_der;
+xer_type_decoder_f RANAP_CauseRadioNetwork_decode_xer;
+xer_type_encoder_f RANAP_CauseRadioNetwork_encode_xer;
+per_type_decoder_f RANAP_CauseRadioNetwork_decode_uper;
+per_type_encoder_f RANAP_CauseRadioNetwork_encode_uper;
+per_type_decoder_f RANAP_CauseRadioNetwork_decode_aper;
+per_type_encoder_f RANAP_CauseRadioNetwork_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CauseRadioNetwork_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CauseRadioNetworkExtension.c b/src/ranap/RANAP_CauseRadioNetworkExtension.c
new file mode 100644
index 0000000..646ff23
--- /dev/null
+++ b/src/ranap/RANAP_CauseRadioNetworkExtension.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CauseRadioNetworkExtension.h"
+
+int
+RANAP_CauseRadioNetworkExtension_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 257l && value <= 512l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_CauseRadioNetworkExtension_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_CauseRadioNetworkExtension_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_CauseRadioNetworkExtension_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_CauseRadioNetworkExtension_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseRadioNetworkExtension_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseRadioNetworkExtension_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_CauseRadioNetworkExtension_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_CauseRadioNetworkExtension_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseRadioNetworkExtension_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseRadioNetworkExtension_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_CauseRadioNetworkExtension_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_CauseRadioNetworkExtension_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseRadioNetworkExtension_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseRadioNetworkExtension_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CauseRadioNetworkExtension_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_CauseRadioNetworkExtension_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CauseRadioNetworkExtension_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_CauseRadioNetworkExtension_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CauseRadioNetworkExtension_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_CauseRadioNetworkExtension_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CauseRadioNetworkExtension_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_CauseRadioNetworkExtension_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  257l,  512l }	/* (257..512) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CauseRadioNetworkExtension_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CauseRadioNetworkExtension = {
+	"RANAP_CauseRadioNetworkExtension",
+	"RANAP_CauseRadioNetworkExtension",
+	RANAP_CauseRadioNetworkExtension_free,
+	RANAP_CauseRadioNetworkExtension_print,
+	RANAP_CauseRadioNetworkExtension_constraint,
+	RANAP_CauseRadioNetworkExtension_decode_ber,
+	RANAP_CauseRadioNetworkExtension_encode_der,
+	RANAP_CauseRadioNetworkExtension_decode_xer,
+	RANAP_CauseRadioNetworkExtension_encode_xer,
+	RANAP_CauseRadioNetworkExtension_decode_uper,
+	RANAP_CauseRadioNetworkExtension_encode_uper,
+	RANAP_CauseRadioNetworkExtension_decode_aper,
+	RANAP_CauseRadioNetworkExtension_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CauseRadioNetworkExtension_tags_1,
+	sizeof(asn_DEF_RANAP_CauseRadioNetworkExtension_tags_1)
+		/sizeof(asn_DEF_RANAP_CauseRadioNetworkExtension_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CauseRadioNetworkExtension_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CauseRadioNetworkExtension_tags_1)
+		/sizeof(asn_DEF_RANAP_CauseRadioNetworkExtension_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CauseRadioNetworkExtension_constr_1,
+	0, 0,	/* Defined elsewhere */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_CauseRadioNetworkExtension.h b/src/ranap/RANAP_CauseRadioNetworkExtension.h
new file mode 100644
index 0000000..b055f58
--- /dev/null
+++ b/src/ranap/RANAP_CauseRadioNetworkExtension.h
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CauseRadioNetworkExtension_H_
+#define	_RANAP_CauseRadioNetworkExtension_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_CauseRadioNetworkExtension {
+	RANAP_CauseRadioNetworkExtension_iP_multicast_address_and_APN_not_valid	= 257,
+	RANAP_CauseRadioNetworkExtension_mBMS_de_registration_rejected_due_to_implicit_registration	= 258,
+	RANAP_CauseRadioNetworkExtension_mBMS_request_superseded	= 259,
+	RANAP_CauseRadioNetworkExtension_mBMS_de_registration_during_session_not_allowed	= 260,
+	RANAP_CauseRadioNetworkExtension_mBMS_no_data_bearer_necessary	= 261,
+	RANAP_CauseRadioNetworkExtension_periodicLocationInformationNotAvailable	= 262,
+	RANAP_CauseRadioNetworkExtension_gTP_Resources_Unavailable	= 263,
+	RANAP_CauseRadioNetworkExtension_tMGI_inUse_overlapping_MBMS_service_area	= 264,
+	RANAP_CauseRadioNetworkExtension_mBMS_no_cell_in_MBMS_service_area	= 265,
+	RANAP_CauseRadioNetworkExtension_no_Iu_CS_UP_relocation	= 266,
+	RANAP_CauseRadioNetworkExtension_successful_MBMS_Session_Start_IP_Multicast_Bearer_established	= 267,
+	RANAP_CauseRadioNetworkExtension_cS_fallback_triggered	= 268,
+	RANAP_CauseRadioNetworkExtension_invalid_CSG_Id	= 269
+} e_RANAP_CauseRadioNetworkExtension;
+
+/* RANAP_CauseRadioNetworkExtension */
+typedef long	 RANAP_CauseRadioNetworkExtension_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CauseRadioNetworkExtension;
+asn_struct_free_f RANAP_CauseRadioNetworkExtension_free;
+asn_struct_print_f RANAP_CauseRadioNetworkExtension_print;
+asn_constr_check_f RANAP_CauseRadioNetworkExtension_constraint;
+ber_type_decoder_f RANAP_CauseRadioNetworkExtension_decode_ber;
+der_type_encoder_f RANAP_CauseRadioNetworkExtension_encode_der;
+xer_type_decoder_f RANAP_CauseRadioNetworkExtension_decode_xer;
+xer_type_encoder_f RANAP_CauseRadioNetworkExtension_encode_xer;
+per_type_decoder_f RANAP_CauseRadioNetworkExtension_decode_uper;
+per_type_encoder_f RANAP_CauseRadioNetworkExtension_encode_uper;
+per_type_decoder_f RANAP_CauseRadioNetworkExtension_decode_aper;
+per_type_encoder_f RANAP_CauseRadioNetworkExtension_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CauseRadioNetworkExtension_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CauseTransmissionNetwork.c b/src/ranap/RANAP_CauseTransmissionNetwork.c
new file mode 100644
index 0000000..a5230e0
--- /dev/null
+++ b/src/ranap/RANAP_CauseTransmissionNetwork.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CauseTransmissionNetwork.h"
+
+int
+RANAP_CauseTransmissionNetwork_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 65l && value <= 80l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_CauseTransmissionNetwork_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_CauseTransmissionNetwork_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_CauseTransmissionNetwork_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_CauseTransmissionNetwork_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseTransmissionNetwork_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseTransmissionNetwork_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_CauseTransmissionNetwork_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_CauseTransmissionNetwork_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseTransmissionNetwork_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseTransmissionNetwork_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_CauseTransmissionNetwork_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_CauseTransmissionNetwork_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CauseTransmissionNetwork_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CauseTransmissionNetwork_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CauseTransmissionNetwork_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_CauseTransmissionNetwork_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CauseTransmissionNetwork_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_CauseTransmissionNetwork_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CauseTransmissionNetwork_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_CauseTransmissionNetwork_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CauseTransmissionNetwork_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_CauseTransmissionNetwork_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 4,  4,  65l,  80l }	/* (65..80) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CauseTransmissionNetwork_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CauseTransmissionNetwork = {
+	"RANAP_CauseTransmissionNetwork",
+	"RANAP_CauseTransmissionNetwork",
+	RANAP_CauseTransmissionNetwork_free,
+	RANAP_CauseTransmissionNetwork_print,
+	RANAP_CauseTransmissionNetwork_constraint,
+	RANAP_CauseTransmissionNetwork_decode_ber,
+	RANAP_CauseTransmissionNetwork_encode_der,
+	RANAP_CauseTransmissionNetwork_decode_xer,
+	RANAP_CauseTransmissionNetwork_encode_xer,
+	RANAP_CauseTransmissionNetwork_decode_uper,
+	RANAP_CauseTransmissionNetwork_encode_uper,
+	RANAP_CauseTransmissionNetwork_decode_aper,
+	RANAP_CauseTransmissionNetwork_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CauseTransmissionNetwork_tags_1,
+	sizeof(asn_DEF_RANAP_CauseTransmissionNetwork_tags_1)
+		/sizeof(asn_DEF_RANAP_CauseTransmissionNetwork_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CauseTransmissionNetwork_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CauseTransmissionNetwork_tags_1)
+		/sizeof(asn_DEF_RANAP_CauseTransmissionNetwork_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CauseTransmissionNetwork_constr_1,
+	0, 0,	/* Defined elsewhere */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_CauseTransmissionNetwork.h b/src/ranap/RANAP_CauseTransmissionNetwork.h
new file mode 100644
index 0000000..9026c2c
--- /dev/null
+++ b/src/ranap/RANAP_CauseTransmissionNetwork.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CauseTransmissionNetwork_H_
+#define	_RANAP_CauseTransmissionNetwork_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_CauseTransmissionNetwork {
+	RANAP_CauseTransmissionNetwork_signalling_transport_resource_failure	= 65,
+	RANAP_CauseTransmissionNetwork_iu_transport_connection_failed_to_establish	= 66
+} e_RANAP_CauseTransmissionNetwork;
+
+/* RANAP_CauseTransmissionNetwork */
+typedef long	 RANAP_CauseTransmissionNetwork_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CauseTransmissionNetwork;
+asn_struct_free_f RANAP_CauseTransmissionNetwork_free;
+asn_struct_print_f RANAP_CauseTransmissionNetwork_print;
+asn_constr_check_f RANAP_CauseTransmissionNetwork_constraint;
+ber_type_decoder_f RANAP_CauseTransmissionNetwork_decode_ber;
+der_type_encoder_f RANAP_CauseTransmissionNetwork_encode_der;
+xer_type_decoder_f RANAP_CauseTransmissionNetwork_decode_xer;
+xer_type_encoder_f RANAP_CauseTransmissionNetwork_encode_xer;
+per_type_decoder_f RANAP_CauseTransmissionNetwork_decode_uper;
+per_type_encoder_f RANAP_CauseTransmissionNetwork_encode_uper;
+per_type_decoder_f RANAP_CauseTransmissionNetwork_decode_aper;
+per_type_encoder_f RANAP_CauseTransmissionNetwork_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CauseTransmissionNetwork_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Cell-Access-Mode.c b/src/ranap/RANAP_Cell-Access-Mode.c
new file mode 100644
index 0000000..9b9f880
--- /dev/null
+++ b/src/ranap/RANAP_Cell-Access-Mode.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Cell-Access-Mode.h"
+
+int
+RANAP_Cell_Access_Mode_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Cell_Access_Mode_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_Cell_Access_Mode_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Cell_Access_Mode_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Cell_Access_Mode_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Cell_Access_Mode_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Cell_Access_Mode_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Cell_Access_Mode_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Cell_Access_Mode_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Cell_Access_Mode_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Cell_Access_Mode_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Cell_Access_Mode_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Cell_Access_Mode_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Cell_Access_Mode_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Cell_Access_Mode_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Cell_Access_Mode_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Cell_Access_Mode_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Cell_Access_Mode_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Cell_Access_Mode_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Cell_Access_Mode_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Cell_Access_Mode_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Cell_Access_Mode_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Cell_Access_Mode_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_Cell_Access_Mode_value2enum_1[] = {
+	{ 0,	6,	"hybrid" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_Cell_Access_Mode_enum2value_1[] = {
+	0	/* hybrid(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_Cell_Access_Mode_specs_1 = {
+	asn_MAP_RANAP_Cell_Access_Mode_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_Cell_Access_Mode_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Cell_Access_Mode_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Cell_Access_Mode = {
+	"RANAP_Cell-Access-Mode",
+	"RANAP_Cell-Access-Mode",
+	RANAP_Cell_Access_Mode_free,
+	RANAP_Cell_Access_Mode_print,
+	RANAP_Cell_Access_Mode_constraint,
+	RANAP_Cell_Access_Mode_decode_ber,
+	RANAP_Cell_Access_Mode_encode_der,
+	RANAP_Cell_Access_Mode_decode_xer,
+	RANAP_Cell_Access_Mode_encode_xer,
+	RANAP_Cell_Access_Mode_decode_uper,
+	RANAP_Cell_Access_Mode_encode_uper,
+	RANAP_Cell_Access_Mode_decode_aper,
+	RANAP_Cell_Access_Mode_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Cell_Access_Mode_tags_1,
+	sizeof(asn_DEF_RANAP_Cell_Access_Mode_tags_1)
+		/sizeof(asn_DEF_RANAP_Cell_Access_Mode_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Cell_Access_Mode_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Cell_Access_Mode_tags_1)
+		/sizeof(asn_DEF_RANAP_Cell_Access_Mode_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Cell_Access_Mode_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_Cell_Access_Mode_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Cell-Access-Mode.h b/src/ranap/RANAP_Cell-Access-Mode.h
new file mode 100644
index 0000000..e0389a9
--- /dev/null
+++ b/src/ranap/RANAP_Cell-Access-Mode.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Cell_Access_Mode_H_
+#define	_RANAP_Cell_Access_Mode_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_Cell_Access_Mode {
+	RANAP_Cell_Access_Mode_hybrid	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_Cell_Access_Mode;
+
+/* RANAP_Cell-Access-Mode */
+typedef long	 RANAP_Cell_Access_Mode_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Cell_Access_Mode;
+asn_struct_free_f RANAP_Cell_Access_Mode_free;
+asn_struct_print_f RANAP_Cell_Access_Mode_print;
+asn_constr_check_f RANAP_Cell_Access_Mode_constraint;
+ber_type_decoder_f RANAP_Cell_Access_Mode_decode_ber;
+der_type_encoder_f RANAP_Cell_Access_Mode_encode_der;
+xer_type_decoder_f RANAP_Cell_Access_Mode_decode_xer;
+xer_type_encoder_f RANAP_Cell_Access_Mode_encode_xer;
+per_type_decoder_f RANAP_Cell_Access_Mode_decode_uper;
+per_type_encoder_f RANAP_Cell_Access_Mode_encode_uper;
+per_type_decoder_f RANAP_Cell_Access_Mode_decode_aper;
+per_type_encoder_f RANAP_Cell_Access_Mode_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Cell_Access_Mode_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Cell-Capacity-Class-Value.c b/src/ranap/RANAP_Cell-Capacity-Class-Value.c
new file mode 100644
index 0000000..ee33b4a
--- /dev/null
+++ b/src/ranap/RANAP_Cell-Capacity-Class-Value.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Cell-Capacity-Class-Value.h"
+
+int
+RANAP_Cell_Capacity_Class_Value_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 100l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Cell_Capacity_Class_Value_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_Cell_Capacity_Class_Value_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Cell_Capacity_Class_Value_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Cell_Capacity_Class_Value_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Cell_Capacity_Class_Value_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Cell_Capacity_Class_Value_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Cell_Capacity_Class_Value_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Cell_Capacity_Class_Value_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Cell_Capacity_Class_Value_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Cell_Capacity_Class_Value_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Cell_Capacity_Class_Value_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Cell_Capacity_Class_Value_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Cell_Capacity_Class_Value_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Cell_Capacity_Class_Value_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Cell_Capacity_Class_Value_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Cell_Capacity_Class_Value_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Cell_Capacity_Class_Value_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Cell_Capacity_Class_Value_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Cell_Capacity_Class_Value_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Cell_Capacity_Class_Value_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Cell_Capacity_Class_Value_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Cell_Capacity_Class_Value_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  7,  7,  1l,  100l }	/* (1..100,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Cell_Capacity_Class_Value_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Cell_Capacity_Class_Value = {
+	"RANAP_Cell-Capacity-Class-Value",
+	"RANAP_Cell-Capacity-Class-Value",
+	RANAP_Cell_Capacity_Class_Value_free,
+	RANAP_Cell_Capacity_Class_Value_print,
+	RANAP_Cell_Capacity_Class_Value_constraint,
+	RANAP_Cell_Capacity_Class_Value_decode_ber,
+	RANAP_Cell_Capacity_Class_Value_encode_der,
+	RANAP_Cell_Capacity_Class_Value_decode_xer,
+	RANAP_Cell_Capacity_Class_Value_encode_xer,
+	RANAP_Cell_Capacity_Class_Value_decode_uper,
+	RANAP_Cell_Capacity_Class_Value_encode_uper,
+	RANAP_Cell_Capacity_Class_Value_decode_aper,
+	RANAP_Cell_Capacity_Class_Value_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Cell_Capacity_Class_Value_tags_1,
+	sizeof(asn_DEF_RANAP_Cell_Capacity_Class_Value_tags_1)
+		/sizeof(asn_DEF_RANAP_Cell_Capacity_Class_Value_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Cell_Capacity_Class_Value_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Cell_Capacity_Class_Value_tags_1)
+		/sizeof(asn_DEF_RANAP_Cell_Capacity_Class_Value_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Cell_Capacity_Class_Value_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_Cell-Capacity-Class-Value.h b/src/ranap/RANAP_Cell-Capacity-Class-Value.h
new file mode 100644
index 0000000..b414ad3
--- /dev/null
+++ b/src/ranap/RANAP_Cell-Capacity-Class-Value.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Cell_Capacity_Class_Value_H_
+#define	_RANAP_Cell_Capacity_Class_Value_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Cell-Capacity-Class-Value */
+typedef long	 RANAP_Cell_Capacity_Class_Value_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Cell_Capacity_Class_Value;
+asn_struct_free_f RANAP_Cell_Capacity_Class_Value_free;
+asn_struct_print_f RANAP_Cell_Capacity_Class_Value_print;
+asn_constr_check_f RANAP_Cell_Capacity_Class_Value_constraint;
+ber_type_decoder_f RANAP_Cell_Capacity_Class_Value_decode_ber;
+der_type_encoder_f RANAP_Cell_Capacity_Class_Value_encode_der;
+xer_type_decoder_f RANAP_Cell_Capacity_Class_Value_decode_xer;
+xer_type_encoder_f RANAP_Cell_Capacity_Class_Value_encode_xer;
+per_type_decoder_f RANAP_Cell_Capacity_Class_Value_decode_uper;
+per_type_encoder_f RANAP_Cell_Capacity_Class_Value_encode_uper;
+per_type_decoder_f RANAP_Cell_Capacity_Class_Value_decode_aper;
+per_type_encoder_f RANAP_Cell_Capacity_Class_Value_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Cell_Capacity_Class_Value_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Cell-Id.c b/src/ranap/RANAP_Cell-Id.c
new file mode 100644
index 0000000..9ffda0a
--- /dev/null
+++ b/src/ranap/RANAP_Cell-Id.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Cell-Id.h"
+
+int
+RANAP_Cell_Id_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 268435455l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Cell_Id_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_Cell_Id_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Cell_Id_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Cell_Id_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Cell_Id_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Cell_Id_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Cell_Id_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Cell_Id_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Cell_Id_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Cell_Id_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Cell_Id_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Cell_Id_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Cell_Id_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Cell_Id_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Cell_Id_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Cell_Id_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Cell_Id_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Cell_Id_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Cell_Id_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Cell_Id_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Cell_Id_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Cell_Id_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 28, -1,  0l,  268435455l }	/* (0..268435455) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Cell_Id_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Cell_Id = {
+	"RANAP_Cell-Id",
+	"RANAP_Cell-Id",
+	RANAP_Cell_Id_free,
+	RANAP_Cell_Id_print,
+	RANAP_Cell_Id_constraint,
+	RANAP_Cell_Id_decode_ber,
+	RANAP_Cell_Id_encode_der,
+	RANAP_Cell_Id_decode_xer,
+	RANAP_Cell_Id_encode_xer,
+	RANAP_Cell_Id_decode_uper,
+	RANAP_Cell_Id_encode_uper,
+	RANAP_Cell_Id_decode_aper,
+	RANAP_Cell_Id_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Cell_Id_tags_1,
+	sizeof(asn_DEF_RANAP_Cell_Id_tags_1)
+		/sizeof(asn_DEF_RANAP_Cell_Id_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Cell_Id_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Cell_Id_tags_1)
+		/sizeof(asn_DEF_RANAP_Cell_Id_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Cell_Id_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_Cell-Id.h b/src/ranap/RANAP_Cell-Id.h
new file mode 100644
index 0000000..36aed83
--- /dev/null
+++ b/src/ranap/RANAP_Cell-Id.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Cell_Id_H_
+#define	_RANAP_Cell_Id_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Cell-Id */
+typedef long	 RANAP_Cell_Id_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Cell_Id;
+asn_struct_free_f RANAP_Cell_Id_free;
+asn_struct_print_f RANAP_Cell_Id_print;
+asn_constr_check_f RANAP_Cell_Id_constraint;
+ber_type_decoder_f RANAP_Cell_Id_decode_ber;
+der_type_encoder_f RANAP_Cell_Id_encode_der;
+xer_type_decoder_f RANAP_Cell_Id_decode_xer;
+xer_type_encoder_f RANAP_Cell_Id_encode_xer;
+per_type_decoder_f RANAP_Cell_Id_decode_uper;
+per_type_encoder_f RANAP_Cell_Id_encode_uper;
+per_type_decoder_f RANAP_Cell_Id_decode_aper;
+per_type_encoder_f RANAP_Cell_Id_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Cell_Id_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CellBased.c b/src/ranap/RANAP_CellBased.c
new file mode 100644
index 0000000..57d26b3
--- /dev/null
+++ b/src/ranap/RANAP_CellBased.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CellBased.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_CellBased_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_CellBased, cellIdList),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CellIdList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"cellIdList"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_CellBased, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_CellBased_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_CellBased_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_CellBased_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellIdList */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_CellBased_specs_1 = {
+	sizeof(struct RANAP_CellBased),
+	offsetof(struct RANAP_CellBased, _asn_ctx),
+	asn_MAP_RANAP_CellBased_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_CellBased_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CellBased = {
+	"RANAP_CellBased",
+	"RANAP_CellBased",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CellBased_tags_1,
+	sizeof(asn_DEF_RANAP_CellBased_tags_1)
+		/sizeof(asn_DEF_RANAP_CellBased_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CellBased_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CellBased_tags_1)
+		/sizeof(asn_DEF_RANAP_CellBased_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_CellBased_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_CellBased_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_CellBased.h b/src/ranap/RANAP_CellBased.h
new file mode 100644
index 0000000..4a42057
--- /dev/null
+++ b/src/ranap/RANAP_CellBased.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CellBased_H_
+#define	_RANAP_CellBased_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_CellIdList.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_CellBased */
+typedef struct RANAP_CellBased {
+	RANAP_CellIdList_t	 cellIdList;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_CellBased_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CellBased;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CellBased_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CellIdList.c b/src/ranap/RANAP_CellIdList.c
new file mode 100644
index 0000000..f5a9c74
--- /dev/null
+++ b/src/ranap/RANAP_CellIdList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CellIdList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_CellIdList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 5,  5,  1l,  32l }	/* (SIZE(1..32)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_CellIdList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_Cell_Id,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CellIdList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_CellIdList_specs_1 = {
+	sizeof(struct RANAP_CellIdList),
+	offsetof(struct RANAP_CellIdList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CellIdList = {
+	"RANAP_CellIdList",
+	"RANAP_CellIdList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CellIdList_tags_1,
+	sizeof(asn_DEF_RANAP_CellIdList_tags_1)
+		/sizeof(asn_DEF_RANAP_CellIdList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CellIdList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CellIdList_tags_1)
+		/sizeof(asn_DEF_RANAP_CellIdList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CellIdList_constr_1,
+	asn_MBR_RANAP_CellIdList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_CellIdList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_CellIdList.h b/src/ranap/RANAP_CellIdList.h
new file mode 100644
index 0000000..edde11e
--- /dev/null
+++ b/src/ranap/RANAP_CellIdList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CellIdList_H_
+#define	_RANAP_CellIdList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Cell-Id.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_CellIdList */
+typedef struct RANAP_CellIdList {
+	A_SEQUENCE_OF(RANAP_Cell_Id_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_CellIdList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CellIdList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CellIdList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CellLoadInformation.c b/src/ranap/RANAP_CellLoadInformation.c
new file mode 100644
index 0000000..e4aa67e
--- /dev/null
+++ b/src/ranap/RANAP_CellLoadInformation.c
@@ -0,0 +1,103 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CellLoadInformation.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_CellLoadInformation_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_CellLoadInformation, cell_Capacity_Class_Value),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Cell_Capacity_Class_Value,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"cell-Capacity-Class-Value"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_CellLoadInformation, loadValue),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_LoadValue,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"loadValue"
+		},
+	{ ATF_POINTER, 3, offsetof(struct RANAP_CellLoadInformation, rTLoadValue),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RTLoadValue,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rTLoadValue"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_CellLoadInformation, nRTLoadInformationValue),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_NRTLoadInformationValue,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"nRTLoadInformationValue"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_CellLoadInformation, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_CellLoadInformation_oms_1[] = { 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_RANAP_CellLoadInformation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_CellLoadInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cell-Capacity-Class-Value */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* loadValue */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rTLoadValue */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* nRTLoadInformationValue */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_CellLoadInformation_specs_1 = {
+	sizeof(struct RANAP_CellLoadInformation),
+	offsetof(struct RANAP_CellLoadInformation, _asn_ctx),
+	asn_MAP_RANAP_CellLoadInformation_tag2el_1,
+	5,	/* Count of tags in the map */
+	asn_MAP_RANAP_CellLoadInformation_oms_1,	/* Optional members */
+	3, 0,	/* Root/Additions */
+	4,	/* Start extensions */
+	6	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CellLoadInformation = {
+	"RANAP_CellLoadInformation",
+	"RANAP_CellLoadInformation",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CellLoadInformation_tags_1,
+	sizeof(asn_DEF_RANAP_CellLoadInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_CellLoadInformation_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CellLoadInformation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CellLoadInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_CellLoadInformation_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_CellLoadInformation_1,
+	5,	/* Elements count */
+	&asn_SPC_RANAP_CellLoadInformation_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_CellLoadInformation.h b/src/ranap/RANAP_CellLoadInformation.h
new file mode 100644
index 0000000..085f791
--- /dev/null
+++ b/src/ranap/RANAP_CellLoadInformation.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CellLoadInformation_H_
+#define	_RANAP_CellLoadInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Cell-Capacity-Class-Value.h"
+#include "RANAP_LoadValue.h"
+#include "RANAP_RTLoadValue.h"
+#include "RANAP_NRTLoadInformationValue.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_CellLoadInformation */
+typedef struct RANAP_CellLoadInformation {
+	RANAP_Cell_Capacity_Class_Value_t	 cell_Capacity_Class_Value;
+	RANAP_LoadValue_t	 loadValue;
+	RANAP_RTLoadValue_t	*rTLoadValue	/* OPTIONAL */;
+	RANAP_NRTLoadInformationValue_t	*nRTLoadInformationValue	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_CellLoadInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CellLoadInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CellLoadInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CellLoadInformationGroup.c b/src/ranap/RANAP_CellLoadInformationGroup.c
new file mode 100644
index 0000000..1091b22
--- /dev/null
+++ b/src/ranap/RANAP_CellLoadInformationGroup.c
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CellLoadInformationGroup.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_CellLoadInformationGroup_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_CellLoadInformationGroup, sourceCellID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANAP_SourceCellID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"sourceCellID"
+		},
+	{ ATF_POINTER, 3, offsetof(struct RANAP_CellLoadInformationGroup, uplinkCellLoadInformation),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CellLoadInformation,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"uplinkCellLoadInformation"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_CellLoadInformationGroup, downlinkCellLoadInformation),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CellLoadInformation,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"downlinkCellLoadInformation"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_CellLoadInformationGroup, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_CellLoadInformationGroup_oms_1[] = { 1, 2, 3 };
+static const ber_tlv_tag_t asn_DEF_RANAP_CellLoadInformationGroup_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_CellLoadInformationGroup_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sourceCellID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uplinkCellLoadInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* downlinkCellLoadInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_CellLoadInformationGroup_specs_1 = {
+	sizeof(struct RANAP_CellLoadInformationGroup),
+	offsetof(struct RANAP_CellLoadInformationGroup, _asn_ctx),
+	asn_MAP_RANAP_CellLoadInformationGroup_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_CellLoadInformationGroup_oms_1,	/* Optional members */
+	3, 0,	/* Root/Additions */
+	3,	/* Start extensions */
+	5	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CellLoadInformationGroup = {
+	"RANAP_CellLoadInformationGroup",
+	"RANAP_CellLoadInformationGroup",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CellLoadInformationGroup_tags_1,
+	sizeof(asn_DEF_RANAP_CellLoadInformationGroup_tags_1)
+		/sizeof(asn_DEF_RANAP_CellLoadInformationGroup_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CellLoadInformationGroup_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CellLoadInformationGroup_tags_1)
+		/sizeof(asn_DEF_RANAP_CellLoadInformationGroup_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_CellLoadInformationGroup_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_CellLoadInformationGroup_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_CellLoadInformationGroup.h b/src/ranap/RANAP_CellLoadInformationGroup.h
new file mode 100644
index 0000000..eb7c234
--- /dev/null
+++ b/src/ranap/RANAP_CellLoadInformationGroup.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CellLoadInformationGroup_H_
+#define	_RANAP_CellLoadInformationGroup_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_SourceCellID.h"
+#include "RANAP_CellLoadInformation.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_CellLoadInformationGroup */
+typedef struct RANAP_CellLoadInformationGroup {
+	RANAP_SourceCellID_t	 sourceCellID;
+	RANAP_CellLoadInformation_t	*uplinkCellLoadInformation	/* OPTIONAL */;
+	RANAP_CellLoadInformation_t	*downlinkCellLoadInformation	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_CellLoadInformationGroup_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CellLoadInformationGroup;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CellLoadInformationGroup_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CellType.c b/src/ranap/RANAP_CellType.c
new file mode 100644
index 0000000..c12bedb
--- /dev/null
+++ b/src/ranap/RANAP_CellType.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CellType.h"
+
+int
+RANAP_CellType_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_CellType_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_CellType_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_CellType_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_CellType_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CellType_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CellType_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_CellType_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_CellType_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CellType_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CellType_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_CellType_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_CellType_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_CellType_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_CellType_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CellType_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_CellType_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CellType_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_CellType_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_CellType_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_CellType_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_CellType_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_CellType_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  3l }	/* (0..3,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_CellType_value2enum_1[] = {
+	{ 0,	5,	"macro" },
+	{ 1,	5,	"micro" },
+	{ 2,	4,	"pico" },
+	{ 3,	5,	"femto" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_CellType_enum2value_1[] = {
+	3,	/* femto(3) */
+	0,	/* macro(0) */
+	1,	/* micro(1) */
+	2	/* pico(2) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_CellType_specs_1 = {
+	asn_MAP_RANAP_CellType_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_CellType_enum2value_1,	/* N => "tag"; sorted by N */
+	4,	/* Number of elements in the maps */
+	5,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CellType_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CellType = {
+	"RANAP_CellType",
+	"RANAP_CellType",
+	RANAP_CellType_free,
+	RANAP_CellType_print,
+	RANAP_CellType_constraint,
+	RANAP_CellType_decode_ber,
+	RANAP_CellType_encode_der,
+	RANAP_CellType_decode_xer,
+	RANAP_CellType_encode_xer,
+	RANAP_CellType_decode_uper,
+	RANAP_CellType_encode_uper,
+	RANAP_CellType_decode_aper,
+	RANAP_CellType_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CellType_tags_1,
+	sizeof(asn_DEF_RANAP_CellType_tags_1)
+		/sizeof(asn_DEF_RANAP_CellType_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CellType_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CellType_tags_1)
+		/sizeof(asn_DEF_RANAP_CellType_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CellType_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_CellType_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_CellType.h b/src/ranap/RANAP_CellType.h
new file mode 100644
index 0000000..6e47d31
--- /dev/null
+++ b/src/ranap/RANAP_CellType.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CellType_H_
+#define	_RANAP_CellType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_CellType {
+	RANAP_CellType_macro	= 0,
+	RANAP_CellType_micro	= 1,
+	RANAP_CellType_pico	= 2,
+	RANAP_CellType_femto	= 3
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_CellType;
+
+/* RANAP_CellType */
+typedef long	 RANAP_CellType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CellType;
+asn_struct_free_f RANAP_CellType_free;
+asn_struct_print_f RANAP_CellType_print;
+asn_constr_check_f RANAP_CellType_constraint;
+ber_type_decoder_f RANAP_CellType_decode_ber;
+der_type_encoder_f RANAP_CellType_encode_der;
+xer_type_decoder_f RANAP_CellType_decode_xer;
+xer_type_encoder_f RANAP_CellType_encode_xer;
+per_type_decoder_f RANAP_CellType_decode_uper;
+per_type_encoder_f RANAP_CellType_encode_uper;
+per_type_decoder_f RANAP_CellType_decode_aper;
+per_type_encoder_f RANAP_CellType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CellType_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ChosenEncryptionAlgorithm.c b/src/ranap/RANAP_ChosenEncryptionAlgorithm.c
new file mode 100644
index 0000000..2b1581f
--- /dev/null
+++ b/src/ranap/RANAP_ChosenEncryptionAlgorithm.c
@@ -0,0 +1,157 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ChosenEncryptionAlgorithm.h"
+
+int
+RANAP_ChosenEncryptionAlgorithm_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_RANAP_EncryptionAlgorithm.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using RANAP_EncryptionAlgorithm,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ChosenEncryptionAlgorithm_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_RANAP_EncryptionAlgorithm.free_struct;
+	td->print_struct   = asn_DEF_RANAP_EncryptionAlgorithm.print_struct;
+	td->check_constraints = asn_DEF_RANAP_EncryptionAlgorithm.check_constraints;
+	td->ber_decoder    = asn_DEF_RANAP_EncryptionAlgorithm.ber_decoder;
+	td->der_encoder    = asn_DEF_RANAP_EncryptionAlgorithm.der_encoder;
+	td->xer_decoder    = asn_DEF_RANAP_EncryptionAlgorithm.xer_decoder;
+	td->xer_encoder    = asn_DEF_RANAP_EncryptionAlgorithm.xer_encoder;
+	td->uper_decoder   = asn_DEF_RANAP_EncryptionAlgorithm.uper_decoder;
+	td->uper_encoder   = asn_DEF_RANAP_EncryptionAlgorithm.uper_encoder;
+	td->aper_decoder   = asn_DEF_RANAP_EncryptionAlgorithm.aper_decoder;
+	td->aper_encoder   = asn_DEF_RANAP_EncryptionAlgorithm.aper_encoder;
+	/* The next four lines are here because of -fknown-extern-type */
+	td->tags           = asn_DEF_RANAP_EncryptionAlgorithm.tags;
+	td->tags_count     = asn_DEF_RANAP_EncryptionAlgorithm.tags_count;
+	td->all_tags       = asn_DEF_RANAP_EncryptionAlgorithm.all_tags;
+	td->all_tags_count = asn_DEF_RANAP_EncryptionAlgorithm.all_tags_count;
+	/* End of these lines */
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_RANAP_EncryptionAlgorithm.per_constraints;
+	td->elements       = asn_DEF_RANAP_EncryptionAlgorithm.elements;
+	td->elements_count = asn_DEF_RANAP_EncryptionAlgorithm.elements_count;
+	td->specifics      = asn_DEF_RANAP_EncryptionAlgorithm.specifics;
+}
+
+void
+RANAP_ChosenEncryptionAlgorithm_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ChosenEncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ChosenEncryptionAlgorithm_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ChosenEncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ChosenEncryptionAlgorithm_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ChosenEncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ChosenEncryptionAlgorithm_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ChosenEncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ChosenEncryptionAlgorithm_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ChosenEncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ChosenEncryptionAlgorithm_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ChosenEncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ChosenEncryptionAlgorithm_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ChosenEncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ChosenEncryptionAlgorithm_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ChosenEncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ChosenEncryptionAlgorithm_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ChosenEncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ChosenEncryptionAlgorithm_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ChosenEncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_TYPE_descriptor_t asn_DEF_RANAP_ChosenEncryptionAlgorithm = {
+	"RANAP_ChosenEncryptionAlgorithm",
+	"RANAP_ChosenEncryptionAlgorithm",
+	RANAP_ChosenEncryptionAlgorithm_free,
+	RANAP_ChosenEncryptionAlgorithm_print,
+	RANAP_ChosenEncryptionAlgorithm_constraint,
+	RANAP_ChosenEncryptionAlgorithm_decode_ber,
+	RANAP_ChosenEncryptionAlgorithm_encode_der,
+	RANAP_ChosenEncryptionAlgorithm_decode_xer,
+	RANAP_ChosenEncryptionAlgorithm_encode_xer,
+	RANAP_ChosenEncryptionAlgorithm_decode_uper,
+	RANAP_ChosenEncryptionAlgorithm_encode_uper,
+	RANAP_ChosenEncryptionAlgorithm_decode_aper,
+	RANAP_ChosenEncryptionAlgorithm_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_ChosenEncryptionAlgorithm.h b/src/ranap/RANAP_ChosenEncryptionAlgorithm.h
new file mode 100644
index 0000000..190acf7
--- /dev/null
+++ b/src/ranap/RANAP_ChosenEncryptionAlgorithm.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+#include <constr_CHOICE.h>
+
+#ifndef	_RANAP_ChosenEncryptionAlgorithm_H_
+#define	_RANAP_ChosenEncryptionAlgorithm_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_EncryptionAlgorithm.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ChosenEncryptionAlgorithm */
+typedef RANAP_EncryptionAlgorithm_t	 RANAP_ChosenEncryptionAlgorithm_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ChosenEncryptionAlgorithm;
+asn_struct_free_f RANAP_ChosenEncryptionAlgorithm_free;
+asn_struct_print_f RANAP_ChosenEncryptionAlgorithm_print;
+asn_constr_check_f RANAP_ChosenEncryptionAlgorithm_constraint;
+ber_type_decoder_f RANAP_ChosenEncryptionAlgorithm_decode_ber;
+der_type_encoder_f RANAP_ChosenEncryptionAlgorithm_encode_der;
+xer_type_decoder_f RANAP_ChosenEncryptionAlgorithm_decode_xer;
+xer_type_encoder_f RANAP_ChosenEncryptionAlgorithm_encode_xer;
+per_type_decoder_f RANAP_ChosenEncryptionAlgorithm_decode_uper;
+per_type_encoder_f RANAP_ChosenEncryptionAlgorithm_encode_uper;
+per_type_decoder_f RANAP_ChosenEncryptionAlgorithm_decode_aper;
+per_type_encoder_f RANAP_ChosenEncryptionAlgorithm_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ChosenEncryptionAlgorithm_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ChosenIntegrityProtectionAlgorithm.c b/src/ranap/RANAP_ChosenIntegrityProtectionAlgorithm.c
new file mode 100644
index 0000000..e38a640
--- /dev/null
+++ b/src/ranap/RANAP_ChosenIntegrityProtectionAlgorithm.c
@@ -0,0 +1,157 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ChosenIntegrityProtectionAlgorithm.h"
+
+int
+RANAP_ChosenIntegrityProtectionAlgorithm_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_RANAP_IntegrityProtectionAlgorithm.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using RANAP_IntegrityProtectionAlgorithm,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ChosenIntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_RANAP_IntegrityProtectionAlgorithm.free_struct;
+	td->print_struct   = asn_DEF_RANAP_IntegrityProtectionAlgorithm.print_struct;
+	td->check_constraints = asn_DEF_RANAP_IntegrityProtectionAlgorithm.check_constraints;
+	td->ber_decoder    = asn_DEF_RANAP_IntegrityProtectionAlgorithm.ber_decoder;
+	td->der_encoder    = asn_DEF_RANAP_IntegrityProtectionAlgorithm.der_encoder;
+	td->xer_decoder    = asn_DEF_RANAP_IntegrityProtectionAlgorithm.xer_decoder;
+	td->xer_encoder    = asn_DEF_RANAP_IntegrityProtectionAlgorithm.xer_encoder;
+	td->uper_decoder   = asn_DEF_RANAP_IntegrityProtectionAlgorithm.uper_decoder;
+	td->uper_encoder   = asn_DEF_RANAP_IntegrityProtectionAlgorithm.uper_encoder;
+	td->aper_decoder   = asn_DEF_RANAP_IntegrityProtectionAlgorithm.aper_decoder;
+	td->aper_encoder   = asn_DEF_RANAP_IntegrityProtectionAlgorithm.aper_encoder;
+	/* The next four lines are here because of -fknown-extern-type */
+	td->tags           = asn_DEF_RANAP_IntegrityProtectionAlgorithm.tags;
+	td->tags_count     = asn_DEF_RANAP_IntegrityProtectionAlgorithm.tags_count;
+	td->all_tags       = asn_DEF_RANAP_IntegrityProtectionAlgorithm.all_tags;
+	td->all_tags_count = asn_DEF_RANAP_IntegrityProtectionAlgorithm.all_tags_count;
+	/* End of these lines */
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_RANAP_IntegrityProtectionAlgorithm.per_constraints;
+	td->elements       = asn_DEF_RANAP_IntegrityProtectionAlgorithm.elements;
+	td->elements_count = asn_DEF_RANAP_IntegrityProtectionAlgorithm.elements_count;
+	td->specifics      = asn_DEF_RANAP_IntegrityProtectionAlgorithm.specifics;
+}
+
+void
+RANAP_ChosenIntegrityProtectionAlgorithm_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ChosenIntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ChosenIntegrityProtectionAlgorithm_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ChosenIntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ChosenIntegrityProtectionAlgorithm_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ChosenIntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ChosenIntegrityProtectionAlgorithm_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ChosenIntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ChosenIntegrityProtectionAlgorithm_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ChosenIntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ChosenIntegrityProtectionAlgorithm_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ChosenIntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ChosenIntegrityProtectionAlgorithm_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ChosenIntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ChosenIntegrityProtectionAlgorithm_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ChosenIntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ChosenIntegrityProtectionAlgorithm_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ChosenIntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ChosenIntegrityProtectionAlgorithm_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ChosenIntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_TYPE_descriptor_t asn_DEF_RANAP_ChosenIntegrityProtectionAlgorithm = {
+	"RANAP_ChosenIntegrityProtectionAlgorithm",
+	"RANAP_ChosenIntegrityProtectionAlgorithm",
+	RANAP_ChosenIntegrityProtectionAlgorithm_free,
+	RANAP_ChosenIntegrityProtectionAlgorithm_print,
+	RANAP_ChosenIntegrityProtectionAlgorithm_constraint,
+	RANAP_ChosenIntegrityProtectionAlgorithm_decode_ber,
+	RANAP_ChosenIntegrityProtectionAlgorithm_encode_der,
+	RANAP_ChosenIntegrityProtectionAlgorithm_decode_xer,
+	RANAP_ChosenIntegrityProtectionAlgorithm_encode_xer,
+	RANAP_ChosenIntegrityProtectionAlgorithm_decode_uper,
+	RANAP_ChosenIntegrityProtectionAlgorithm_encode_uper,
+	RANAP_ChosenIntegrityProtectionAlgorithm_decode_aper,
+	RANAP_ChosenIntegrityProtectionAlgorithm_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_ChosenIntegrityProtectionAlgorithm.h b/src/ranap/RANAP_ChosenIntegrityProtectionAlgorithm.h
new file mode 100644
index 0000000..09c9493
--- /dev/null
+++ b/src/ranap/RANAP_ChosenIntegrityProtectionAlgorithm.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+#include <constr_CHOICE.h>
+
+#ifndef	_RANAP_ChosenIntegrityProtectionAlgorithm_H_
+#define	_RANAP_ChosenIntegrityProtectionAlgorithm_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IntegrityProtectionAlgorithm.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ChosenIntegrityProtectionAlgorithm */
+typedef RANAP_IntegrityProtectionAlgorithm_t	 RANAP_ChosenIntegrityProtectionAlgorithm_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ChosenIntegrityProtectionAlgorithm;
+asn_struct_free_f RANAP_ChosenIntegrityProtectionAlgorithm_free;
+asn_struct_print_f RANAP_ChosenIntegrityProtectionAlgorithm_print;
+asn_constr_check_f RANAP_ChosenIntegrityProtectionAlgorithm_constraint;
+ber_type_decoder_f RANAP_ChosenIntegrityProtectionAlgorithm_decode_ber;
+der_type_encoder_f RANAP_ChosenIntegrityProtectionAlgorithm_encode_der;
+xer_type_decoder_f RANAP_ChosenIntegrityProtectionAlgorithm_decode_xer;
+xer_type_encoder_f RANAP_ChosenIntegrityProtectionAlgorithm_encode_xer;
+per_type_decoder_f RANAP_ChosenIntegrityProtectionAlgorithm_decode_uper;
+per_type_encoder_f RANAP_ChosenIntegrityProtectionAlgorithm_encode_uper;
+per_type_decoder_f RANAP_ChosenIntegrityProtectionAlgorithm_decode_aper;
+per_type_encoder_f RANAP_ChosenIntegrityProtectionAlgorithm_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ChosenIntegrityProtectionAlgorithm_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ClassmarkInformation2.c b/src/ranap/RANAP_ClassmarkInformation2.c
new file mode 100644
index 0000000..fd6e41e
--- /dev/null
+++ b/src/ranap/RANAP_ClassmarkInformation2.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ClassmarkInformation2.h"
+
+int
+RANAP_ClassmarkInformation2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ClassmarkInformation2_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_ClassmarkInformation2_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ClassmarkInformation2_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ClassmarkInformation2_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ClassmarkInformation2_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ClassmarkInformation2_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ClassmarkInformation2_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ClassmarkInformation2_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ClassmarkInformation2_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ClassmarkInformation2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ClassmarkInformation2_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ClassmarkInformation2_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ClassmarkInformation2_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ClassmarkInformation2_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ClassmarkInformation2_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ClassmarkInformation2_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ClassmarkInformation2_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ClassmarkInformation2_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ClassmarkInformation2_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ClassmarkInformation2_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ClassmarkInformation2_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_ClassmarkInformation2_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ClassmarkInformation2 = {
+	"RANAP_ClassmarkInformation2",
+	"RANAP_ClassmarkInformation2",
+	RANAP_ClassmarkInformation2_free,
+	RANAP_ClassmarkInformation2_print,
+	RANAP_ClassmarkInformation2_constraint,
+	RANAP_ClassmarkInformation2_decode_ber,
+	RANAP_ClassmarkInformation2_encode_der,
+	RANAP_ClassmarkInformation2_decode_xer,
+	RANAP_ClassmarkInformation2_encode_xer,
+	RANAP_ClassmarkInformation2_decode_uper,
+	RANAP_ClassmarkInformation2_encode_uper,
+	RANAP_ClassmarkInformation2_decode_aper,
+	RANAP_ClassmarkInformation2_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ClassmarkInformation2_tags_1,
+	sizeof(asn_DEF_RANAP_ClassmarkInformation2_tags_1)
+		/sizeof(asn_DEF_RANAP_ClassmarkInformation2_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ClassmarkInformation2_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ClassmarkInformation2_tags_1)
+		/sizeof(asn_DEF_RANAP_ClassmarkInformation2_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_ClassmarkInformation2.h b/src/ranap/RANAP_ClassmarkInformation2.h
new file mode 100644
index 0000000..efab851
--- /dev/null
+++ b/src/ranap/RANAP_ClassmarkInformation2.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ClassmarkInformation2_H_
+#define	_RANAP_ClassmarkInformation2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ClassmarkInformation2 */
+typedef OCTET_STRING_t	 RANAP_ClassmarkInformation2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ClassmarkInformation2;
+asn_struct_free_f RANAP_ClassmarkInformation2_free;
+asn_struct_print_f RANAP_ClassmarkInformation2_print;
+asn_constr_check_f RANAP_ClassmarkInformation2_constraint;
+ber_type_decoder_f RANAP_ClassmarkInformation2_decode_ber;
+der_type_encoder_f RANAP_ClassmarkInformation2_encode_der;
+xer_type_decoder_f RANAP_ClassmarkInformation2_decode_xer;
+xer_type_encoder_f RANAP_ClassmarkInformation2_encode_xer;
+per_type_decoder_f RANAP_ClassmarkInformation2_decode_uper;
+per_type_encoder_f RANAP_ClassmarkInformation2_encode_uper;
+per_type_decoder_f RANAP_ClassmarkInformation2_decode_aper;
+per_type_encoder_f RANAP_ClassmarkInformation2_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ClassmarkInformation2_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ClassmarkInformation3.c b/src/ranap/RANAP_ClassmarkInformation3.c
new file mode 100644
index 0000000..5523cee
--- /dev/null
+++ b/src/ranap/RANAP_ClassmarkInformation3.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ClassmarkInformation3.h"
+
+int
+RANAP_ClassmarkInformation3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ClassmarkInformation3_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_ClassmarkInformation3_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ClassmarkInformation3_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ClassmarkInformation3_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ClassmarkInformation3_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ClassmarkInformation3_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ClassmarkInformation3_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ClassmarkInformation3_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ClassmarkInformation3_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ClassmarkInformation3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ClassmarkInformation3_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ClassmarkInformation3_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ClassmarkInformation3_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ClassmarkInformation3_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ClassmarkInformation3_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ClassmarkInformation3_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ClassmarkInformation3_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ClassmarkInformation3_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ClassmarkInformation3_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ClassmarkInformation3_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ClassmarkInformation3_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_ClassmarkInformation3_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ClassmarkInformation3 = {
+	"RANAP_ClassmarkInformation3",
+	"RANAP_ClassmarkInformation3",
+	RANAP_ClassmarkInformation3_free,
+	RANAP_ClassmarkInformation3_print,
+	RANAP_ClassmarkInformation3_constraint,
+	RANAP_ClassmarkInformation3_decode_ber,
+	RANAP_ClassmarkInformation3_encode_der,
+	RANAP_ClassmarkInformation3_decode_xer,
+	RANAP_ClassmarkInformation3_encode_xer,
+	RANAP_ClassmarkInformation3_decode_uper,
+	RANAP_ClassmarkInformation3_encode_uper,
+	RANAP_ClassmarkInformation3_decode_aper,
+	RANAP_ClassmarkInformation3_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ClassmarkInformation3_tags_1,
+	sizeof(asn_DEF_RANAP_ClassmarkInformation3_tags_1)
+		/sizeof(asn_DEF_RANAP_ClassmarkInformation3_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ClassmarkInformation3_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ClassmarkInformation3_tags_1)
+		/sizeof(asn_DEF_RANAP_ClassmarkInformation3_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_ClassmarkInformation3.h b/src/ranap/RANAP_ClassmarkInformation3.h
new file mode 100644
index 0000000..db377ff
--- /dev/null
+++ b/src/ranap/RANAP_ClassmarkInformation3.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ClassmarkInformation3_H_
+#define	_RANAP_ClassmarkInformation3_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ClassmarkInformation3 */
+typedef OCTET_STRING_t	 RANAP_ClassmarkInformation3_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ClassmarkInformation3;
+asn_struct_free_f RANAP_ClassmarkInformation3_free;
+asn_struct_print_f RANAP_ClassmarkInformation3_print;
+asn_constr_check_f RANAP_ClassmarkInformation3_constraint;
+ber_type_decoder_f RANAP_ClassmarkInformation3_decode_ber;
+der_type_encoder_f RANAP_ClassmarkInformation3_encode_der;
+xer_type_decoder_f RANAP_ClassmarkInformation3_decode_xer;
+xer_type_encoder_f RANAP_ClassmarkInformation3_encode_xer;
+per_type_decoder_f RANAP_ClassmarkInformation3_decode_uper;
+per_type_encoder_f RANAP_ClassmarkInformation3_encode_uper;
+per_type_decoder_f RANAP_ClassmarkInformation3_decode_aper;
+per_type_encoder_f RANAP_ClassmarkInformation3_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ClassmarkInformation3_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ClientType.c b/src/ranap/RANAP_ClientType.c
new file mode 100644
index 0000000..0229654
--- /dev/null
+++ b/src/ranap/RANAP_ClientType.c
@@ -0,0 +1,179 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ClientType.h"
+
+int
+RANAP_ClientType_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ClientType_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_ClientType_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ClientType_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ClientType_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ClientType_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ClientType_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ClientType_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ClientType_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ClientType_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ClientType_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ClientType_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ClientType_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ClientType_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ClientType_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ClientType_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ClientType_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ClientType_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ClientType_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ClientType_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ClientType_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ClientType_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_ClientType_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0l,  7l }	/* (0..7,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_ClientType_value2enum_1[] = {
+	{ 0,	18,	"emergency-Services" },
+	{ 1,	20,	"value-Added-Services" },
+	{ 2,	22,	"pLMN-Operator-Services" },
+	{ 3,	25,	"lawful-Intercept-Services" },
+	{ 4,	32,	"pLMN-Operator-Broadcast-Services" },
+	{ 5,	20,	"pLMN-Operator-O-et-M" },
+	{ 6,	34,	"pLMN-Operator-Anonymous-Statistics" },
+	{ 7,	39,	"pLMN-Operator-Target-MS-Service-Support" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_ClientType_enum2value_1[] = {
+	0,	/* emergency-Services(0) */
+	3,	/* lawful-Intercept-Services(3) */
+	6,	/* pLMN-Operator-Anonymous-Statistics(6) */
+	4,	/* pLMN-Operator-Broadcast-Services(4) */
+	5,	/* pLMN-Operator-O-et-M(5) */
+	2,	/* pLMN-Operator-Services(2) */
+	7,	/* pLMN-Operator-Target-MS-Service-Support(7) */
+	1	/* value-Added-Services(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_ClientType_specs_1 = {
+	asn_MAP_RANAP_ClientType_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_ClientType_enum2value_1,	/* N => "tag"; sorted by N */
+	8,	/* Number of elements in the maps */
+	9,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ClientType_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ClientType = {
+	"RANAP_ClientType",
+	"RANAP_ClientType",
+	RANAP_ClientType_free,
+	RANAP_ClientType_print,
+	RANAP_ClientType_constraint,
+	RANAP_ClientType_decode_ber,
+	RANAP_ClientType_encode_der,
+	RANAP_ClientType_decode_xer,
+	RANAP_ClientType_encode_xer,
+	RANAP_ClientType_decode_uper,
+	RANAP_ClientType_encode_uper,
+	RANAP_ClientType_decode_aper,
+	RANAP_ClientType_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ClientType_tags_1,
+	sizeof(asn_DEF_RANAP_ClientType_tags_1)
+		/sizeof(asn_DEF_RANAP_ClientType_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ClientType_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ClientType_tags_1)
+		/sizeof(asn_DEF_RANAP_ClientType_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_ClientType_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_ClientType_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ClientType.h b/src/ranap/RANAP_ClientType.h
new file mode 100644
index 0000000..834cc0f
--- /dev/null
+++ b/src/ranap/RANAP_ClientType.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ClientType_H_
+#define	_RANAP_ClientType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_ClientType {
+	RANAP_ClientType_emergency_Services	= 0,
+	RANAP_ClientType_value_Added_Services	= 1,
+	RANAP_ClientType_pLMN_Operator_Services	= 2,
+	RANAP_ClientType_lawful_Intercept_Services	= 3,
+	RANAP_ClientType_pLMN_Operator_Broadcast_Services	= 4,
+	RANAP_ClientType_pLMN_Operator_O_et_M	= 5,
+	RANAP_ClientType_pLMN_Operator_Anonymous_Statistics	= 6,
+	RANAP_ClientType_pLMN_Operator_Target_MS_Service_Support	= 7
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_ClientType;
+
+/* RANAP_ClientType */
+typedef long	 RANAP_ClientType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ClientType;
+asn_struct_free_f RANAP_ClientType_free;
+asn_struct_print_f RANAP_ClientType_print;
+asn_constr_check_f RANAP_ClientType_constraint;
+ber_type_decoder_f RANAP_ClientType_decode_ber;
+der_type_encoder_f RANAP_ClientType_encode_der;
+xer_type_decoder_f RANAP_ClientType_decode_xer;
+xer_type_encoder_f RANAP_ClientType_encode_xer;
+per_type_decoder_f RANAP_ClientType_decode_uper;
+per_type_encoder_f RANAP_ClientType_encode_uper;
+per_type_decoder_f RANAP_ClientType_decode_aper;
+per_type_encoder_f RANAP_ClientType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ClientType_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CommonID.c b/src/ranap/RANAP_CommonID.c
new file mode 100644
index 0000000..5507b9a
--- /dev/null
+++ b/src/ranap/RANAP_CommonID.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_CommonID.h"
+
+static int
+memb_commonID_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_commonID_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_commonID_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_commonID_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_commonID_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_commonID_ies_specs_2 = {
+	sizeof(struct commonID_ies),
+	offsetof(struct commonID_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_commonID_ies_2 = {
+	"commonID-ies",
+	"commonID-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_commonID_ies_tags_2,
+	sizeof(asn_DEF_commonID_ies_tags_2)
+		/sizeof(asn_DEF_commonID_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_commonID_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_commonID_ies_tags_2)
+		/sizeof(asn_DEF_commonID_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_commonID_ies_constr_2,
+	asn_MBR_commonID_ies_2,
+	1,	/* Single element */
+	&asn_SPC_commonID_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_CommonID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_CommonID, commonID_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_commonID_ies_2,
+		memb_commonID_ies_constraint_1,
+		&asn_PER_memb_commonID_ies_constr_2,
+		0,
+		"commonID-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CommonID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_CommonID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* commonID-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_CommonID_specs_1 = {
+	sizeof(struct RANAP_CommonID),
+	offsetof(struct RANAP_CommonID, _asn_ctx),
+	asn_MAP_RANAP_CommonID_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CommonID = {
+	"RANAP_CommonID",
+	"RANAP_CommonID",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CommonID_tags_1,
+	sizeof(asn_DEF_RANAP_CommonID_tags_1)
+		/sizeof(asn_DEF_RANAP_CommonID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CommonID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CommonID_tags_1)
+		/sizeof(asn_DEF_RANAP_CommonID_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_CommonID_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_CommonID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_CommonID.h b/src/ranap/RANAP_CommonID.h
new file mode 100644
index 0000000..01c0116
--- /dev/null
+++ b/src/ranap/RANAP_CommonID.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_CommonID_H_
+#define	_RANAP_CommonID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_CommonID */
+typedef struct RANAP_CommonID {
+	struct commonID_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} commonID_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_CommonID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CommonID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CommonID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Correlation-ID.c b/src/ranap/RANAP_Correlation-ID.c
new file mode 100644
index 0000000..67fa503
--- /dev/null
+++ b/src/ranap/RANAP_Correlation-ID.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Correlation-ID.h"
+
+int
+RANAP_Correlation_ID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 4l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Correlation_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_Correlation_ID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Correlation_ID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Correlation_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Correlation_ID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Correlation_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Correlation_ID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Correlation_ID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Correlation_ID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Correlation_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Correlation_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Correlation_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Correlation_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Correlation_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Correlation_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Correlation_ID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Correlation_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Correlation_ID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Correlation_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Correlation_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Correlation_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Correlation_ID_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  4l,  4l }	/* (SIZE(4..4)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Correlation_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Correlation_ID = {
+	"RANAP_Correlation-ID",
+	"RANAP_Correlation-ID",
+	RANAP_Correlation_ID_free,
+	RANAP_Correlation_ID_print,
+	RANAP_Correlation_ID_constraint,
+	RANAP_Correlation_ID_decode_ber,
+	RANAP_Correlation_ID_encode_der,
+	RANAP_Correlation_ID_decode_xer,
+	RANAP_Correlation_ID_encode_xer,
+	RANAP_Correlation_ID_decode_uper,
+	RANAP_Correlation_ID_encode_uper,
+	RANAP_Correlation_ID_decode_aper,
+	RANAP_Correlation_ID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Correlation_ID_tags_1,
+	sizeof(asn_DEF_RANAP_Correlation_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_Correlation_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Correlation_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Correlation_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_Correlation_ID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Correlation_ID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_Correlation-ID.h b/src/ranap/RANAP_Correlation-ID.h
new file mode 100644
index 0000000..a47174a
--- /dev/null
+++ b/src/ranap/RANAP_Correlation-ID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Correlation_ID_H_
+#define	_RANAP_Correlation_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Correlation-ID */
+typedef OCTET_STRING_t	 RANAP_Correlation_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Correlation_ID;
+asn_struct_free_f RANAP_Correlation_ID_free;
+asn_struct_print_f RANAP_Correlation_ID_print;
+asn_constr_check_f RANAP_Correlation_ID_constraint;
+ber_type_decoder_f RANAP_Correlation_ID_decode_ber;
+der_type_encoder_f RANAP_Correlation_ID_encode_der;
+xer_type_decoder_f RANAP_Correlation_ID_decode_xer;
+xer_type_encoder_f RANAP_Correlation_ID_encode_xer;
+per_type_decoder_f RANAP_Correlation_ID_decode_uper;
+per_type_encoder_f RANAP_Correlation_ID_encode_uper;
+per_type_decoder_f RANAP_Correlation_ID_decode_aper;
+per_type_encoder_f RANAP_Correlation_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Correlation_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Criticality.c b/src/ranap/RANAP_Criticality.c
new file mode 100644
index 0000000..fec28f4
--- /dev/null
+++ b/src/ranap/RANAP_Criticality.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-CommonDataTypes"
+ * 	found in "../../asn1/ranap/RANAP-CommonDataTypes.asn"
+ */
+
+#include "RANAP_Criticality.h"
+
+int
+RANAP_Criticality_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Criticality_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_Criticality_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Criticality_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Criticality_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Criticality_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Criticality_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Criticality_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Criticality_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Criticality_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Criticality_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Criticality_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Criticality_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Criticality_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Criticality_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Criticality_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Criticality_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Criticality_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Criticality_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Criticality_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Criticality_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Criticality_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Criticality_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0l,  2l }	/* (0..2) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_Criticality_value2enum_1[] = {
+	{ 0,	6,	"reject" },
+	{ 1,	6,	"ignore" },
+	{ 2,	6,	"notify" }
+};
+static const unsigned int asn_MAP_RANAP_Criticality_enum2value_1[] = {
+	1,	/* ignore(1) */
+	2,	/* notify(2) */
+	0	/* reject(0) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_Criticality_specs_1 = {
+	asn_MAP_RANAP_Criticality_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_Criticality_enum2value_1,	/* N => "tag"; sorted by N */
+	3,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Criticality_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Criticality = {
+	"RANAP_Criticality",
+	"RANAP_Criticality",
+	RANAP_Criticality_free,
+	RANAP_Criticality_print,
+	RANAP_Criticality_constraint,
+	RANAP_Criticality_decode_ber,
+	RANAP_Criticality_encode_der,
+	RANAP_Criticality_decode_xer,
+	RANAP_Criticality_encode_xer,
+	RANAP_Criticality_decode_uper,
+	RANAP_Criticality_encode_uper,
+	RANAP_Criticality_decode_aper,
+	RANAP_Criticality_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Criticality_tags_1,
+	sizeof(asn_DEF_RANAP_Criticality_tags_1)
+		/sizeof(asn_DEF_RANAP_Criticality_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Criticality_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Criticality_tags_1)
+		/sizeof(asn_DEF_RANAP_Criticality_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Criticality_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_Criticality_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Criticality.h b/src/ranap/RANAP_Criticality.h
new file mode 100644
index 0000000..192cd8a
--- /dev/null
+++ b/src/ranap/RANAP_Criticality.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-CommonDataTypes"
+ * 	found in "../../asn1/ranap/RANAP-CommonDataTypes.asn"
+ */
+
+#ifndef	_RANAP_Criticality_H_
+#define	_RANAP_Criticality_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_Criticality {
+	RANAP_Criticality_reject	= 0,
+	RANAP_Criticality_ignore	= 1,
+	RANAP_Criticality_notify	= 2
+} e_RANAP_Criticality;
+
+/* RANAP_Criticality */
+typedef long	 RANAP_Criticality_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Criticality;
+asn_struct_free_f RANAP_Criticality_free;
+asn_struct_print_f RANAP_Criticality_print;
+asn_constr_check_f RANAP_Criticality_constraint;
+ber_type_decoder_f RANAP_Criticality_decode_ber;
+der_type_encoder_f RANAP_Criticality_encode_der;
+xer_type_decoder_f RANAP_Criticality_decode_xer;
+xer_type_encoder_f RANAP_Criticality_encode_xer;
+per_type_decoder_f RANAP_Criticality_decode_uper;
+per_type_encoder_f RANAP_Criticality_encode_uper;
+per_type_decoder_f RANAP_Criticality_decode_aper;
+per_type_encoder_f RANAP_Criticality_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Criticality_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CriticalityDiagnostics-IE-List.c b/src/ranap/RANAP_CriticalityDiagnostics-IE-List.c
new file mode 100644
index 0000000..4574a99
--- /dev/null
+++ b/src/ranap/RANAP_CriticalityDiagnostics-IE-List.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CriticalityDiagnostics-IE-List.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_CriticalityDiagnostics_IE_List_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 8,  8,  1l,  256l }	/* (SIZE(1..256)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct Member, iECriticality),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Criticality,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iECriticality"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct Member, iE_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ProtocolIE_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-ID"
+		},
+	{ ATF_POINTER, 2, offsetof(struct Member, repetitionNumber),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RepetitionNumber0,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"repetitionNumber"
+		},
+	{ ATF_POINTER, 1, offsetof(struct Member, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_Member_oms_2[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iECriticality */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iE-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* repetitionNumber */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+	sizeof(struct Member),
+	offsetof(struct Member, _asn_ctx),
+	asn_MAP_Member_tag2el_2,
+	4,	/* Count of tags in the map */
+	asn_MAP_Member_oms_2,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	3,	/* Start extensions */
+	5	/* Stop extensions */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+	"SEQUENCE",
+	"SEQUENCE",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_Member_tags_2,
+	sizeof(asn_DEF_Member_tags_2)
+		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	asn_DEF_Member_tags_2,	/* Same as above */
+	sizeof(asn_DEF_Member_tags_2)
+		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_Member_2,
+	4,	/* Elements count */
+	&asn_SPC_Member_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_CriticalityDiagnostics_IE_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_Member_2,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_CriticalityDiagnostics_IE_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_CriticalityDiagnostics_IE_List_specs_1 = {
+	sizeof(struct RANAP_CriticalityDiagnostics_IE_List),
+	offsetof(struct RANAP_CriticalityDiagnostics_IE_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CriticalityDiagnostics_IE_List = {
+	"RANAP_CriticalityDiagnostics-IE-List",
+	"RANAP_CriticalityDiagnostics-IE-List",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CriticalityDiagnostics_IE_List_tags_1,
+	sizeof(asn_DEF_RANAP_CriticalityDiagnostics_IE_List_tags_1)
+		/sizeof(asn_DEF_RANAP_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CriticalityDiagnostics_IE_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CriticalityDiagnostics_IE_List_tags_1)
+		/sizeof(asn_DEF_RANAP_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_CriticalityDiagnostics_IE_List_constr_1,
+	asn_MBR_RANAP_CriticalityDiagnostics_IE_List_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_CriticalityDiagnostics_IE_List_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_CriticalityDiagnostics-IE-List.h b/src/ranap/RANAP_CriticalityDiagnostics-IE-List.h
new file mode 100644
index 0000000..cba5bbd
--- /dev/null
+++ b/src/ranap/RANAP_CriticalityDiagnostics-IE-List.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CriticalityDiagnostics_IE_List_H_
+#define	_RANAP_CriticalityDiagnostics_IE_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "RANAP_Criticality.h"
+#include "RANAP_ProtocolIE-ID.h"
+#include "RANAP_RepetitionNumber0.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_CriticalityDiagnostics-IE-List */
+typedef struct RANAP_CriticalityDiagnostics_IE_List {
+	A_SEQUENCE_OF(struct Member {
+		RANAP_Criticality_t	 iECriticality;
+		RANAP_ProtocolIE_ID_t	 iE_ID;
+		RANAP_RepetitionNumber0_t	*repetitionNumber	/* OPTIONAL */;
+		RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_CriticalityDiagnostics_IE_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CriticalityDiagnostics_IE_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CriticalityDiagnostics_IE_List_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_CriticalityDiagnostics.c b/src/ranap/RANAP_CriticalityDiagnostics.c
new file mode 100644
index 0000000..5004af6
--- /dev/null
+++ b/src/ranap/RANAP_CriticalityDiagnostics.c
@@ -0,0 +1,103 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_CriticalityDiagnostics.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_CriticalityDiagnostics_1[] = {
+	{ ATF_POINTER, 5, offsetof(struct RANAP_CriticalityDiagnostics, procedureCode),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ProcedureCode,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"procedureCode"
+		},
+	{ ATF_POINTER, 4, offsetof(struct RANAP_CriticalityDiagnostics, triggeringMessage),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TriggeringMessage,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"triggeringMessage"
+		},
+	{ ATF_POINTER, 3, offsetof(struct RANAP_CriticalityDiagnostics, procedureCriticality),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Criticality,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"procedureCriticality"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_CriticalityDiagnostics, iEsCriticalityDiagnostics),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CriticalityDiagnostics_IE_List,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iEsCriticalityDiagnostics"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_CriticalityDiagnostics, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_CriticalityDiagnostics_oms_1[] = { 0, 1, 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_RANAP_CriticalityDiagnostics_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_CriticalityDiagnostics_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* triggeringMessage */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* procedureCriticality */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* iEsCriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_CriticalityDiagnostics_specs_1 = {
+	sizeof(struct RANAP_CriticalityDiagnostics),
+	offsetof(struct RANAP_CriticalityDiagnostics, _asn_ctx),
+	asn_MAP_RANAP_CriticalityDiagnostics_tag2el_1,
+	5,	/* Count of tags in the map */
+	asn_MAP_RANAP_CriticalityDiagnostics_oms_1,	/* Optional members */
+	5, 0,	/* Root/Additions */
+	4,	/* Start extensions */
+	6	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_CriticalityDiagnostics = {
+	"RANAP_CriticalityDiagnostics",
+	"RANAP_CriticalityDiagnostics",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_CriticalityDiagnostics_tags_1,
+	sizeof(asn_DEF_RANAP_CriticalityDiagnostics_tags_1)
+		/sizeof(asn_DEF_RANAP_CriticalityDiagnostics_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_CriticalityDiagnostics_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_CriticalityDiagnostics_tags_1)
+		/sizeof(asn_DEF_RANAP_CriticalityDiagnostics_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_CriticalityDiagnostics_1,
+	5,	/* Elements count */
+	&asn_SPC_RANAP_CriticalityDiagnostics_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_CriticalityDiagnostics.h b/src/ranap/RANAP_CriticalityDiagnostics.h
new file mode 100644
index 0000000..0577204
--- /dev/null
+++ b/src/ranap/RANAP_CriticalityDiagnostics.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_CriticalityDiagnostics_H_
+#define	_RANAP_CriticalityDiagnostics_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ProcedureCode.h"
+#include "RANAP_TriggeringMessage.h"
+#include "RANAP_Criticality.h"
+#include "RANAP_CriticalityDiagnostics-IE-List.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_CriticalityDiagnostics */
+typedef struct RANAP_CriticalityDiagnostics {
+	RANAP_ProcedureCode_t	*procedureCode	/* OPTIONAL */;
+	RANAP_TriggeringMessage_t	*triggeringMessage	/* OPTIONAL */;
+	RANAP_Criticality_t	*procedureCriticality	/* OPTIONAL */;
+	RANAP_CriticalityDiagnostics_IE_List_t	*iEsCriticalityDiagnostics	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_CriticalityDiagnostics_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_CriticalityDiagnostics;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_CriticalityDiagnostics_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_D-RNTI.c b/src/ranap/RANAP_D-RNTI.c
new file mode 100644
index 0000000..2fa4ab2
--- /dev/null
+++ b/src/ranap/RANAP_D-RNTI.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_D-RNTI.h"
+
+int
+RANAP_D_RNTI_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 1048575l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_D_RNTI_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_D_RNTI_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_D_RNTI_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_D_RNTI_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_D_RNTI_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_D_RNTI_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_D_RNTI_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_D_RNTI_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_D_RNTI_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_D_RNTI_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_D_RNTI_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_D_RNTI_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_D_RNTI_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_D_RNTI_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_D_RNTI_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_D_RNTI_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_D_RNTI_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_D_RNTI_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_D_RNTI_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_D_RNTI_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_D_RNTI_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_D_RNTI_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 20, -1,  0l,  1048575l }	/* (0..1048575) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_D_RNTI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_D_RNTI = {
+	"RANAP_D-RNTI",
+	"RANAP_D-RNTI",
+	RANAP_D_RNTI_free,
+	RANAP_D_RNTI_print,
+	RANAP_D_RNTI_constraint,
+	RANAP_D_RNTI_decode_ber,
+	RANAP_D_RNTI_encode_der,
+	RANAP_D_RNTI_decode_xer,
+	RANAP_D_RNTI_encode_xer,
+	RANAP_D_RNTI_decode_uper,
+	RANAP_D_RNTI_encode_uper,
+	RANAP_D_RNTI_decode_aper,
+	RANAP_D_RNTI_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_D_RNTI_tags_1,
+	sizeof(asn_DEF_RANAP_D_RNTI_tags_1)
+		/sizeof(asn_DEF_RANAP_D_RNTI_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_D_RNTI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_D_RNTI_tags_1)
+		/sizeof(asn_DEF_RANAP_D_RNTI_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_D_RNTI_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_D-RNTI.h b/src/ranap/RANAP_D-RNTI.h
new file mode 100644
index 0000000..4ede3e4
--- /dev/null
+++ b/src/ranap/RANAP_D-RNTI.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_D_RNTI_H_
+#define	_RANAP_D_RNTI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_D-RNTI */
+typedef long	 RANAP_D_RNTI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_D_RNTI;
+asn_struct_free_f RANAP_D_RNTI_free;
+asn_struct_print_f RANAP_D_RNTI_print;
+asn_constr_check_f RANAP_D_RNTI_constraint;
+ber_type_decoder_f RANAP_D_RNTI_decode_ber;
+der_type_encoder_f RANAP_D_RNTI_encode_der;
+xer_type_decoder_f RANAP_D_RNTI_decode_xer;
+xer_type_encoder_f RANAP_D_RNTI_encode_xer;
+per_type_decoder_f RANAP_D_RNTI_decode_uper;
+per_type_encoder_f RANAP_D_RNTI_encode_uper;
+per_type_decoder_f RANAP_D_RNTI_decode_aper;
+per_type_encoder_f RANAP_D_RNTI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_D_RNTI_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_DCH-ID.c b/src/ranap/RANAP_DCH-ID.c
new file mode 100644
index 0000000..a4aa1d8
--- /dev/null
+++ b/src/ranap/RANAP_DCH-ID.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_DCH-ID.h"
+
+int
+RANAP_DCH_ID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 255l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_DCH_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_DCH_ID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_DCH_ID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_DCH_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DCH_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_DCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_DCH_ID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DCH_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_DCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_DCH_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DCH_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_DCH_ID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_DCH_ID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_DCH_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_DCH_ID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  0l,  255l }	/* (0..255) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_DCH_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_DCH_ID = {
+	"RANAP_DCH-ID",
+	"RANAP_DCH-ID",
+	RANAP_DCH_ID_free,
+	RANAP_DCH_ID_print,
+	RANAP_DCH_ID_constraint,
+	RANAP_DCH_ID_decode_ber,
+	RANAP_DCH_ID_encode_der,
+	RANAP_DCH_ID_decode_xer,
+	RANAP_DCH_ID_encode_xer,
+	RANAP_DCH_ID_decode_uper,
+	RANAP_DCH_ID_encode_uper,
+	RANAP_DCH_ID_decode_aper,
+	RANAP_DCH_ID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_DCH_ID_tags_1,
+	sizeof(asn_DEF_RANAP_DCH_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_DCH_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_DCH_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_DCH_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_DCH_ID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_DCH_ID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_DCH-ID.h b/src/ranap/RANAP_DCH-ID.h
new file mode 100644
index 0000000..756fd5d
--- /dev/null
+++ b/src/ranap/RANAP_DCH-ID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_DCH_ID_H_
+#define	_RANAP_DCH_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_DCH-ID */
+typedef long	 RANAP_DCH_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_DCH_ID;
+asn_struct_free_f RANAP_DCH_ID_free;
+asn_struct_print_f RANAP_DCH_ID_print;
+asn_constr_check_f RANAP_DCH_ID_constraint;
+ber_type_decoder_f RANAP_DCH_ID_decode_ber;
+der_type_encoder_f RANAP_DCH_ID_encode_der;
+xer_type_decoder_f RANAP_DCH_ID_decode_xer;
+xer_type_encoder_f RANAP_DCH_ID_encode_xer;
+per_type_decoder_f RANAP_DCH_ID_decode_uper;
+per_type_encoder_f RANAP_DCH_ID_encode_uper;
+per_type_decoder_f RANAP_DCH_ID_decode_aper;
+per_type_encoder_f RANAP_DCH_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_DCH_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_DL-GTP-PDU-SequenceNumber.c b/src/ranap/RANAP_DL-GTP-PDU-SequenceNumber.c
new file mode 100644
index 0000000..7321c32
--- /dev/null
+++ b/src/ranap/RANAP_DL-GTP-PDU-SequenceNumber.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_DL-GTP-PDU-SequenceNumber.h"
+
+int
+RANAP_DL_GTP_PDU_SequenceNumber_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 65535l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_DL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_DL_GTP_PDU_SequenceNumber_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_DL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_DL_GTP_PDU_SequenceNumber_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DL_GTP_PDU_SequenceNumber_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_DL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_DL_GTP_PDU_SequenceNumber_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DL_GTP_PDU_SequenceNumber_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_DL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_DL_GTP_PDU_SequenceNumber_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DL_GTP_PDU_SequenceNumber_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_DL_GTP_PDU_SequenceNumber_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_DL_GTP_PDU_SequenceNumber_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_DL_GTP_PDU_SequenceNumber_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_DL_GTP_PDU_SequenceNumber_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_DL_GTP_PDU_SequenceNumber_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_DL_GTP_PDU_SequenceNumber = {
+	"RANAP_DL-GTP-PDU-SequenceNumber",
+	"RANAP_DL-GTP-PDU-SequenceNumber",
+	RANAP_DL_GTP_PDU_SequenceNumber_free,
+	RANAP_DL_GTP_PDU_SequenceNumber_print,
+	RANAP_DL_GTP_PDU_SequenceNumber_constraint,
+	RANAP_DL_GTP_PDU_SequenceNumber_decode_ber,
+	RANAP_DL_GTP_PDU_SequenceNumber_encode_der,
+	RANAP_DL_GTP_PDU_SequenceNumber_decode_xer,
+	RANAP_DL_GTP_PDU_SequenceNumber_encode_xer,
+	RANAP_DL_GTP_PDU_SequenceNumber_decode_uper,
+	RANAP_DL_GTP_PDU_SequenceNumber_encode_uper,
+	RANAP_DL_GTP_PDU_SequenceNumber_decode_aper,
+	RANAP_DL_GTP_PDU_SequenceNumber_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_DL_GTP_PDU_SequenceNumber_tags_1,
+	sizeof(asn_DEF_RANAP_DL_GTP_PDU_SequenceNumber_tags_1)
+		/sizeof(asn_DEF_RANAP_DL_GTP_PDU_SequenceNumber_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_DL_GTP_PDU_SequenceNumber_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_DL_GTP_PDU_SequenceNumber_tags_1)
+		/sizeof(asn_DEF_RANAP_DL_GTP_PDU_SequenceNumber_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_DL_GTP_PDU_SequenceNumber_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_DL-GTP-PDU-SequenceNumber.h b/src/ranap/RANAP_DL-GTP-PDU-SequenceNumber.h
new file mode 100644
index 0000000..94b1ad1
--- /dev/null
+++ b/src/ranap/RANAP_DL-GTP-PDU-SequenceNumber.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_DL_GTP_PDU_SequenceNumber_H_
+#define	_RANAP_DL_GTP_PDU_SequenceNumber_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_DL-GTP-PDU-SequenceNumber */
+typedef long	 RANAP_DL_GTP_PDU_SequenceNumber_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_DL_GTP_PDU_SequenceNumber;
+asn_struct_free_f RANAP_DL_GTP_PDU_SequenceNumber_free;
+asn_struct_print_f RANAP_DL_GTP_PDU_SequenceNumber_print;
+asn_constr_check_f RANAP_DL_GTP_PDU_SequenceNumber_constraint;
+ber_type_decoder_f RANAP_DL_GTP_PDU_SequenceNumber_decode_ber;
+der_type_encoder_f RANAP_DL_GTP_PDU_SequenceNumber_encode_der;
+xer_type_decoder_f RANAP_DL_GTP_PDU_SequenceNumber_decode_xer;
+xer_type_encoder_f RANAP_DL_GTP_PDU_SequenceNumber_encode_xer;
+per_type_decoder_f RANAP_DL_GTP_PDU_SequenceNumber_decode_uper;
+per_type_encoder_f RANAP_DL_GTP_PDU_SequenceNumber_encode_uper;
+per_type_decoder_f RANAP_DL_GTP_PDU_SequenceNumber_decode_aper;
+per_type_encoder_f RANAP_DL_GTP_PDU_SequenceNumber_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_DL_GTP_PDU_SequenceNumber_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_DL-N-PDU-SequenceNumber.c b/src/ranap/RANAP_DL-N-PDU-SequenceNumber.c
new file mode 100644
index 0000000..68bf7c5
--- /dev/null
+++ b/src/ranap/RANAP_DL-N-PDU-SequenceNumber.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_DL-N-PDU-SequenceNumber.h"
+
+int
+RANAP_DL_N_PDU_SequenceNumber_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 65535l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_DL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_DL_N_PDU_SequenceNumber_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_DL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_DL_N_PDU_SequenceNumber_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DL_N_PDU_SequenceNumber_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_DL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_DL_N_PDU_SequenceNumber_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DL_N_PDU_SequenceNumber_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_DL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_DL_N_PDU_SequenceNumber_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DL_N_PDU_SequenceNumber_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_DL_N_PDU_SequenceNumber_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_DL_N_PDU_SequenceNumber_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_DL_N_PDU_SequenceNumber_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_DL_N_PDU_SequenceNumber_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_DL_N_PDU_SequenceNumber_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_DL_N_PDU_SequenceNumber = {
+	"RANAP_DL-N-PDU-SequenceNumber",
+	"RANAP_DL-N-PDU-SequenceNumber",
+	RANAP_DL_N_PDU_SequenceNumber_free,
+	RANAP_DL_N_PDU_SequenceNumber_print,
+	RANAP_DL_N_PDU_SequenceNumber_constraint,
+	RANAP_DL_N_PDU_SequenceNumber_decode_ber,
+	RANAP_DL_N_PDU_SequenceNumber_encode_der,
+	RANAP_DL_N_PDU_SequenceNumber_decode_xer,
+	RANAP_DL_N_PDU_SequenceNumber_encode_xer,
+	RANAP_DL_N_PDU_SequenceNumber_decode_uper,
+	RANAP_DL_N_PDU_SequenceNumber_encode_uper,
+	RANAP_DL_N_PDU_SequenceNumber_decode_aper,
+	RANAP_DL_N_PDU_SequenceNumber_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_DL_N_PDU_SequenceNumber_tags_1,
+	sizeof(asn_DEF_RANAP_DL_N_PDU_SequenceNumber_tags_1)
+		/sizeof(asn_DEF_RANAP_DL_N_PDU_SequenceNumber_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_DL_N_PDU_SequenceNumber_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_DL_N_PDU_SequenceNumber_tags_1)
+		/sizeof(asn_DEF_RANAP_DL_N_PDU_SequenceNumber_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_DL_N_PDU_SequenceNumber_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_DL-N-PDU-SequenceNumber.h b/src/ranap/RANAP_DL-N-PDU-SequenceNumber.h
new file mode 100644
index 0000000..1b4d062
--- /dev/null
+++ b/src/ranap/RANAP_DL-N-PDU-SequenceNumber.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_DL_N_PDU_SequenceNumber_H_
+#define	_RANAP_DL_N_PDU_SequenceNumber_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_DL-N-PDU-SequenceNumber */
+typedef long	 RANAP_DL_N_PDU_SequenceNumber_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_DL_N_PDU_SequenceNumber;
+asn_struct_free_f RANAP_DL_N_PDU_SequenceNumber_free;
+asn_struct_print_f RANAP_DL_N_PDU_SequenceNumber_print;
+asn_constr_check_f RANAP_DL_N_PDU_SequenceNumber_constraint;
+ber_type_decoder_f RANAP_DL_N_PDU_SequenceNumber_decode_ber;
+der_type_encoder_f RANAP_DL_N_PDU_SequenceNumber_encode_der;
+xer_type_decoder_f RANAP_DL_N_PDU_SequenceNumber_decode_xer;
+xer_type_encoder_f RANAP_DL_N_PDU_SequenceNumber_encode_xer;
+per_type_decoder_f RANAP_DL_N_PDU_SequenceNumber_decode_uper;
+per_type_encoder_f RANAP_DL_N_PDU_SequenceNumber_encode_uper;
+per_type_decoder_f RANAP_DL_N_PDU_SequenceNumber_decode_aper;
+per_type_encoder_f RANAP_DL_N_PDU_SequenceNumber_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_DL_N_PDU_SequenceNumber_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_DRX-CycleLengthCoefficient.c b/src/ranap/RANAP_DRX-CycleLengthCoefficient.c
new file mode 100644
index 0000000..031e163
--- /dev/null
+++ b/src/ranap/RANAP_DRX-CycleLengthCoefficient.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_DRX-CycleLengthCoefficient.h"
+
+int
+RANAP_DRX_CycleLengthCoefficient_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 6l && value <= 9l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_DRX_CycleLengthCoefficient_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_DRX_CycleLengthCoefficient_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_DRX_CycleLengthCoefficient_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_DRX_CycleLengthCoefficient_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DRX_CycleLengthCoefficient_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DRX_CycleLengthCoefficient_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_DRX_CycleLengthCoefficient_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_DRX_CycleLengthCoefficient_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DRX_CycleLengthCoefficient_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DRX_CycleLengthCoefficient_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_DRX_CycleLengthCoefficient_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_DRX_CycleLengthCoefficient_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DRX_CycleLengthCoefficient_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DRX_CycleLengthCoefficient_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DRX_CycleLengthCoefficient_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_DRX_CycleLengthCoefficient_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DRX_CycleLengthCoefficient_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_DRX_CycleLengthCoefficient_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DRX_CycleLengthCoefficient_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_DRX_CycleLengthCoefficient_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DRX_CycleLengthCoefficient_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_DRX_CycleLengthCoefficient_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  6l,  9l }	/* (6..9) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_DRX_CycleLengthCoefficient_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_DRX_CycleLengthCoefficient = {
+	"RANAP_DRX-CycleLengthCoefficient",
+	"RANAP_DRX-CycleLengthCoefficient",
+	RANAP_DRX_CycleLengthCoefficient_free,
+	RANAP_DRX_CycleLengthCoefficient_print,
+	RANAP_DRX_CycleLengthCoefficient_constraint,
+	RANAP_DRX_CycleLengthCoefficient_decode_ber,
+	RANAP_DRX_CycleLengthCoefficient_encode_der,
+	RANAP_DRX_CycleLengthCoefficient_decode_xer,
+	RANAP_DRX_CycleLengthCoefficient_encode_xer,
+	RANAP_DRX_CycleLengthCoefficient_decode_uper,
+	RANAP_DRX_CycleLengthCoefficient_encode_uper,
+	RANAP_DRX_CycleLengthCoefficient_decode_aper,
+	RANAP_DRX_CycleLengthCoefficient_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_DRX_CycleLengthCoefficient_tags_1,
+	sizeof(asn_DEF_RANAP_DRX_CycleLengthCoefficient_tags_1)
+		/sizeof(asn_DEF_RANAP_DRX_CycleLengthCoefficient_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_DRX_CycleLengthCoefficient_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_DRX_CycleLengthCoefficient_tags_1)
+		/sizeof(asn_DEF_RANAP_DRX_CycleLengthCoefficient_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_DRX_CycleLengthCoefficient_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_DRX-CycleLengthCoefficient.h b/src/ranap/RANAP_DRX-CycleLengthCoefficient.h
new file mode 100644
index 0000000..f1af3ed
--- /dev/null
+++ b/src/ranap/RANAP_DRX-CycleLengthCoefficient.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_DRX_CycleLengthCoefficient_H_
+#define	_RANAP_DRX_CycleLengthCoefficient_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_DRX-CycleLengthCoefficient */
+typedef long	 RANAP_DRX_CycleLengthCoefficient_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_DRX_CycleLengthCoefficient;
+asn_struct_free_f RANAP_DRX_CycleLengthCoefficient_free;
+asn_struct_print_f RANAP_DRX_CycleLengthCoefficient_print;
+asn_constr_check_f RANAP_DRX_CycleLengthCoefficient_constraint;
+ber_type_decoder_f RANAP_DRX_CycleLengthCoefficient_decode_ber;
+der_type_encoder_f RANAP_DRX_CycleLengthCoefficient_encode_der;
+xer_type_decoder_f RANAP_DRX_CycleLengthCoefficient_decode_xer;
+xer_type_encoder_f RANAP_DRX_CycleLengthCoefficient_encode_xer;
+per_type_decoder_f RANAP_DRX_CycleLengthCoefficient_decode_uper;
+per_type_encoder_f RANAP_DRX_CycleLengthCoefficient_encode_uper;
+per_type_decoder_f RANAP_DRX_CycleLengthCoefficient_decode_aper;
+per_type_encoder_f RANAP_DRX_CycleLengthCoefficient_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_DRX_CycleLengthCoefficient_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_DSCH-ID.c b/src/ranap/RANAP_DSCH-ID.c
new file mode 100644
index 0000000..23996d5
--- /dev/null
+++ b/src/ranap/RANAP_DSCH-ID.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_DSCH-ID.h"
+
+int
+RANAP_DSCH_ID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 255l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_DSCH_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_DSCH_ID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_DSCH_ID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_DSCH_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DSCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DSCH_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_DSCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_DSCH_ID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DSCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DSCH_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_DSCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_DSCH_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DSCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DSCH_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DSCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_DSCH_ID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DSCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_DSCH_ID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DSCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_DSCH_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DSCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_DSCH_ID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  0l,  255l }	/* (0..255) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_DSCH_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_DSCH_ID = {
+	"RANAP_DSCH-ID",
+	"RANAP_DSCH-ID",
+	RANAP_DSCH_ID_free,
+	RANAP_DSCH_ID_print,
+	RANAP_DSCH_ID_constraint,
+	RANAP_DSCH_ID_decode_ber,
+	RANAP_DSCH_ID_encode_der,
+	RANAP_DSCH_ID_decode_xer,
+	RANAP_DSCH_ID_encode_xer,
+	RANAP_DSCH_ID_decode_uper,
+	RANAP_DSCH_ID_encode_uper,
+	RANAP_DSCH_ID_decode_aper,
+	RANAP_DSCH_ID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_DSCH_ID_tags_1,
+	sizeof(asn_DEF_RANAP_DSCH_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_DSCH_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_DSCH_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_DSCH_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_DSCH_ID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_DSCH_ID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_DSCH-ID.h b/src/ranap/RANAP_DSCH-ID.h
new file mode 100644
index 0000000..54e678b
--- /dev/null
+++ b/src/ranap/RANAP_DSCH-ID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_DSCH_ID_H_
+#define	_RANAP_DSCH_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_DSCH-ID */
+typedef long	 RANAP_DSCH_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_DSCH_ID;
+asn_struct_free_f RANAP_DSCH_ID_free;
+asn_struct_print_f RANAP_DSCH_ID_print;
+asn_constr_check_f RANAP_DSCH_ID_constraint;
+ber_type_decoder_f RANAP_DSCH_ID_decode_ber;
+der_type_encoder_f RANAP_DSCH_ID_encode_der;
+xer_type_decoder_f RANAP_DSCH_ID_decode_xer;
+xer_type_encoder_f RANAP_DSCH_ID_encode_xer;
+per_type_decoder_f RANAP_DSCH_ID_decode_uper;
+per_type_encoder_f RANAP_DSCH_ID_encode_uper;
+per_type_decoder_f RANAP_DSCH_ID_decode_aper;
+per_type_encoder_f RANAP_DSCH_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_DSCH_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_DataPDUType.c b/src/ranap/RANAP_DataPDUType.c
new file mode 100644
index 0000000..d960a4d
--- /dev/null
+++ b/src/ranap/RANAP_DataPDUType.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_DataPDUType.h"
+
+int
+RANAP_DataPDUType_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_DataPDUType_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_DataPDUType_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_DataPDUType_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_DataPDUType_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DataPDUType_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DataPDUType_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_DataPDUType_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_DataPDUType_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DataPDUType_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DataPDUType_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_DataPDUType_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_DataPDUType_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DataPDUType_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DataPDUType_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DataPDUType_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_DataPDUType_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DataPDUType_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_DataPDUType_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DataPDUType_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_DataPDUType_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DataPDUType_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_DataPDUType_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_DataPDUType_value2enum_1[] = {
+	{ 0,	8,	"pDUtype0" },
+	{ 1,	8,	"pDUtype1" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_DataPDUType_enum2value_1[] = {
+	0,	/* pDUtype0(0) */
+	1	/* pDUtype1(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_DataPDUType_specs_1 = {
+	asn_MAP_RANAP_DataPDUType_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_DataPDUType_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_DataPDUType_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_DataPDUType = {
+	"RANAP_DataPDUType",
+	"RANAP_DataPDUType",
+	RANAP_DataPDUType_free,
+	RANAP_DataPDUType_print,
+	RANAP_DataPDUType_constraint,
+	RANAP_DataPDUType_decode_ber,
+	RANAP_DataPDUType_encode_der,
+	RANAP_DataPDUType_decode_xer,
+	RANAP_DataPDUType_encode_xer,
+	RANAP_DataPDUType_decode_uper,
+	RANAP_DataPDUType_encode_uper,
+	RANAP_DataPDUType_decode_aper,
+	RANAP_DataPDUType_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_DataPDUType_tags_1,
+	sizeof(asn_DEF_RANAP_DataPDUType_tags_1)
+		/sizeof(asn_DEF_RANAP_DataPDUType_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_DataPDUType_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_DataPDUType_tags_1)
+		/sizeof(asn_DEF_RANAP_DataPDUType_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_DataPDUType_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_DataPDUType_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_DataPDUType.h b/src/ranap/RANAP_DataPDUType.h
new file mode 100644
index 0000000..f732d62
--- /dev/null
+++ b/src/ranap/RANAP_DataPDUType.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_DataPDUType_H_
+#define	_RANAP_DataPDUType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_DataPDUType {
+	RANAP_DataPDUType_pDUtype0	= 0,
+	RANAP_DataPDUType_pDUtype1	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_DataPDUType;
+
+/* RANAP_DataPDUType */
+typedef long	 RANAP_DataPDUType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_DataPDUType;
+asn_struct_free_f RANAP_DataPDUType_free;
+asn_struct_print_f RANAP_DataPDUType_print;
+asn_constr_check_f RANAP_DataPDUType_constraint;
+ber_type_decoder_f RANAP_DataPDUType_decode_ber;
+der_type_encoder_f RANAP_DataPDUType_encode_der;
+xer_type_decoder_f RANAP_DataPDUType_decode_xer;
+xer_type_encoder_f RANAP_DataPDUType_encode_xer;
+per_type_decoder_f RANAP_DataPDUType_decode_uper;
+per_type_encoder_f RANAP_DataPDUType_encode_uper;
+per_type_decoder_f RANAP_DataPDUType_decode_aper;
+per_type_encoder_f RANAP_DataPDUType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_DataPDUType_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_DataVolumeReference.c b/src/ranap/RANAP_DataVolumeReference.c
new file mode 100644
index 0000000..dc8daa9
--- /dev/null
+++ b/src/ranap/RANAP_DataVolumeReference.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_DataVolumeReference.h"
+
+int
+RANAP_DataVolumeReference_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 255l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_DataVolumeReference_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_DataVolumeReference_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_DataVolumeReference_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_DataVolumeReference_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DataVolumeReference_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DataVolumeReference_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_DataVolumeReference_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_DataVolumeReference_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DataVolumeReference_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DataVolumeReference_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_DataVolumeReference_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_DataVolumeReference_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DataVolumeReference_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DataVolumeReference_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DataVolumeReference_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_DataVolumeReference_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DataVolumeReference_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_DataVolumeReference_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DataVolumeReference_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_DataVolumeReference_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DataVolumeReference_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_DataVolumeReference_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  0l,  255l }	/* (0..255) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_DataVolumeReference_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_DataVolumeReference = {
+	"RANAP_DataVolumeReference",
+	"RANAP_DataVolumeReference",
+	RANAP_DataVolumeReference_free,
+	RANAP_DataVolumeReference_print,
+	RANAP_DataVolumeReference_constraint,
+	RANAP_DataVolumeReference_decode_ber,
+	RANAP_DataVolumeReference_encode_der,
+	RANAP_DataVolumeReference_decode_xer,
+	RANAP_DataVolumeReference_encode_xer,
+	RANAP_DataVolumeReference_decode_uper,
+	RANAP_DataVolumeReference_encode_uper,
+	RANAP_DataVolumeReference_decode_aper,
+	RANAP_DataVolumeReference_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_DataVolumeReference_tags_1,
+	sizeof(asn_DEF_RANAP_DataVolumeReference_tags_1)
+		/sizeof(asn_DEF_RANAP_DataVolumeReference_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_DataVolumeReference_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_DataVolumeReference_tags_1)
+		/sizeof(asn_DEF_RANAP_DataVolumeReference_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_DataVolumeReference_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_DataVolumeReference.h b/src/ranap/RANAP_DataVolumeReference.h
new file mode 100644
index 0000000..693de2b
--- /dev/null
+++ b/src/ranap/RANAP_DataVolumeReference.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_DataVolumeReference_H_
+#define	_RANAP_DataVolumeReference_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_DataVolumeReference */
+typedef long	 RANAP_DataVolumeReference_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_DataVolumeReference;
+asn_struct_free_f RANAP_DataVolumeReference_free;
+asn_struct_print_f RANAP_DataVolumeReference_print;
+asn_constr_check_f RANAP_DataVolumeReference_constraint;
+ber_type_decoder_f RANAP_DataVolumeReference_decode_ber;
+der_type_encoder_f RANAP_DataVolumeReference_encode_der;
+xer_type_decoder_f RANAP_DataVolumeReference_decode_xer;
+xer_type_encoder_f RANAP_DataVolumeReference_encode_xer;
+per_type_decoder_f RANAP_DataVolumeReference_decode_uper;
+per_type_encoder_f RANAP_DataVolumeReference_encode_uper;
+per_type_decoder_f RANAP_DataVolumeReference_decode_aper;
+per_type_encoder_f RANAP_DataVolumeReference_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_DataVolumeReference_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_DataVolumeReport.c b/src/ranap/RANAP_DataVolumeReport.c
new file mode 100644
index 0000000..e89948f
--- /dev/null
+++ b/src/ranap/RANAP_DataVolumeReport.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_DataVolumeReport.h"
+
+static int
+memb_dataVolumeReport_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_dataVolumeReport_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_dataVolumeReport_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_dataVolumeReport_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_dataVolumeReport_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_dataVolumeReport_ies_specs_2 = {
+	sizeof(struct dataVolumeReport_ies),
+	offsetof(struct dataVolumeReport_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_dataVolumeReport_ies_2 = {
+	"dataVolumeReport-ies",
+	"dataVolumeReport-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_dataVolumeReport_ies_tags_2,
+	sizeof(asn_DEF_dataVolumeReport_ies_tags_2)
+		/sizeof(asn_DEF_dataVolumeReport_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_dataVolumeReport_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_dataVolumeReport_ies_tags_2)
+		/sizeof(asn_DEF_dataVolumeReport_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_dataVolumeReport_ies_constr_2,
+	asn_MBR_dataVolumeReport_ies_2,
+	1,	/* Single element */
+	&asn_SPC_dataVolumeReport_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_DataVolumeReport_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_DataVolumeReport, dataVolumeReport_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_dataVolumeReport_ies_2,
+		memb_dataVolumeReport_ies_constraint_1,
+		&asn_PER_memb_dataVolumeReport_ies_constr_2,
+		0,
+		"dataVolumeReport-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_DataVolumeReport_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_DataVolumeReport_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* dataVolumeReport-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_DataVolumeReport_specs_1 = {
+	sizeof(struct RANAP_DataVolumeReport),
+	offsetof(struct RANAP_DataVolumeReport, _asn_ctx),
+	asn_MAP_RANAP_DataVolumeReport_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_DataVolumeReport = {
+	"RANAP_DataVolumeReport",
+	"RANAP_DataVolumeReport",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_DataVolumeReport_tags_1,
+	sizeof(asn_DEF_RANAP_DataVolumeReport_tags_1)
+		/sizeof(asn_DEF_RANAP_DataVolumeReport_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_DataVolumeReport_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_DataVolumeReport_tags_1)
+		/sizeof(asn_DEF_RANAP_DataVolumeReport_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_DataVolumeReport_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_DataVolumeReport_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_DataVolumeReport.h b/src/ranap/RANAP_DataVolumeReport.h
new file mode 100644
index 0000000..c0e2a9d
--- /dev/null
+++ b/src/ranap/RANAP_DataVolumeReport.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_DataVolumeReport_H_
+#define	_RANAP_DataVolumeReport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_DataVolumeReport */
+typedef struct RANAP_DataVolumeReport {
+	struct dataVolumeReport_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} dataVolumeReport_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_DataVolumeReport_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_DataVolumeReport;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_DataVolumeReport_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_DataVolumeReportRequest.c b/src/ranap/RANAP_DataVolumeReportRequest.c
new file mode 100644
index 0000000..b69246e
--- /dev/null
+++ b/src/ranap/RANAP_DataVolumeReportRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_DataVolumeReportRequest.h"
+
+static int
+memb_dataVolumeReportRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_dataVolumeReportRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_dataVolumeReportRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_dataVolumeReportRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_dataVolumeReportRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_dataVolumeReportRequest_ies_specs_2 = {
+	sizeof(struct dataVolumeReportRequest_ies),
+	offsetof(struct dataVolumeReportRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_dataVolumeReportRequest_ies_2 = {
+	"dataVolumeReportRequest-ies",
+	"dataVolumeReportRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_dataVolumeReportRequest_ies_tags_2,
+	sizeof(asn_DEF_dataVolumeReportRequest_ies_tags_2)
+		/sizeof(asn_DEF_dataVolumeReportRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_dataVolumeReportRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_dataVolumeReportRequest_ies_tags_2)
+		/sizeof(asn_DEF_dataVolumeReportRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_dataVolumeReportRequest_ies_constr_2,
+	asn_MBR_dataVolumeReportRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_dataVolumeReportRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_DataVolumeReportRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_DataVolumeReportRequest, dataVolumeReportRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_dataVolumeReportRequest_ies_2,
+		memb_dataVolumeReportRequest_ies_constraint_1,
+		&asn_PER_memb_dataVolumeReportRequest_ies_constr_2,
+		0,
+		"dataVolumeReportRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_DataVolumeReportRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_DataVolumeReportRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* dataVolumeReportRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_DataVolumeReportRequest_specs_1 = {
+	sizeof(struct RANAP_DataVolumeReportRequest),
+	offsetof(struct RANAP_DataVolumeReportRequest, _asn_ctx),
+	asn_MAP_RANAP_DataVolumeReportRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_DataVolumeReportRequest = {
+	"RANAP_DataVolumeReportRequest",
+	"RANAP_DataVolumeReportRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_DataVolumeReportRequest_tags_1,
+	sizeof(asn_DEF_RANAP_DataVolumeReportRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_DataVolumeReportRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_DataVolumeReportRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_DataVolumeReportRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_DataVolumeReportRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_DataVolumeReportRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_DataVolumeReportRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_DataVolumeReportRequest.h b/src/ranap/RANAP_DataVolumeReportRequest.h
new file mode 100644
index 0000000..bec017f
--- /dev/null
+++ b/src/ranap/RANAP_DataVolumeReportRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_DataVolumeReportRequest_H_
+#define	_RANAP_DataVolumeReportRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_DataVolumeReportRequest */
+typedef struct RANAP_DataVolumeReportRequest {
+	struct dataVolumeReportRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} dataVolumeReportRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_DataVolumeReportRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_DataVolumeReportRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_DataVolumeReportRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_DataVolumeReportingIndication.c b/src/ranap/RANAP_DataVolumeReportingIndication.c
new file mode 100644
index 0000000..9f9e684
--- /dev/null
+++ b/src/ranap/RANAP_DataVolumeReportingIndication.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_DataVolumeReportingIndication.h"
+
+int
+RANAP_DataVolumeReportingIndication_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_DataVolumeReportingIndication_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_DataVolumeReportingIndication_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_DataVolumeReportingIndication_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_DataVolumeReportingIndication_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DataVolumeReportingIndication_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DataVolumeReportingIndication_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_DataVolumeReportingIndication_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_DataVolumeReportingIndication_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DataVolumeReportingIndication_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DataVolumeReportingIndication_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_DataVolumeReportingIndication_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_DataVolumeReportingIndication_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DataVolumeReportingIndication_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DataVolumeReportingIndication_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DataVolumeReportingIndication_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_DataVolumeReportingIndication_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DataVolumeReportingIndication_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_DataVolumeReportingIndication_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DataVolumeReportingIndication_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_DataVolumeReportingIndication_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DataVolumeReportingIndication_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_DataVolumeReportingIndication_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 1,  1,  0l,  1l }	/* (0..1) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_DataVolumeReportingIndication_value2enum_1[] = {
+	{ 0,	9,	"do-report" },
+	{ 1,	13,	"do-not-report" }
+};
+static const unsigned int asn_MAP_RANAP_DataVolumeReportingIndication_enum2value_1[] = {
+	1,	/* do-not-report(1) */
+	0	/* do-report(0) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_DataVolumeReportingIndication_specs_1 = {
+	asn_MAP_RANAP_DataVolumeReportingIndication_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_DataVolumeReportingIndication_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_DataVolumeReportingIndication_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_DataVolumeReportingIndication = {
+	"RANAP_DataVolumeReportingIndication",
+	"RANAP_DataVolumeReportingIndication",
+	RANAP_DataVolumeReportingIndication_free,
+	RANAP_DataVolumeReportingIndication_print,
+	RANAP_DataVolumeReportingIndication_constraint,
+	RANAP_DataVolumeReportingIndication_decode_ber,
+	RANAP_DataVolumeReportingIndication_encode_der,
+	RANAP_DataVolumeReportingIndication_decode_xer,
+	RANAP_DataVolumeReportingIndication_encode_xer,
+	RANAP_DataVolumeReportingIndication_decode_uper,
+	RANAP_DataVolumeReportingIndication_encode_uper,
+	RANAP_DataVolumeReportingIndication_decode_aper,
+	RANAP_DataVolumeReportingIndication_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_DataVolumeReportingIndication_tags_1,
+	sizeof(asn_DEF_RANAP_DataVolumeReportingIndication_tags_1)
+		/sizeof(asn_DEF_RANAP_DataVolumeReportingIndication_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_DataVolumeReportingIndication_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_DataVolumeReportingIndication_tags_1)
+		/sizeof(asn_DEF_RANAP_DataVolumeReportingIndication_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_DataVolumeReportingIndication_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_DataVolumeReportingIndication_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_DataVolumeReportingIndication.h b/src/ranap/RANAP_DataVolumeReportingIndication.h
new file mode 100644
index 0000000..feaa072
--- /dev/null
+++ b/src/ranap/RANAP_DataVolumeReportingIndication.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_DataVolumeReportingIndication_H_
+#define	_RANAP_DataVolumeReportingIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_DataVolumeReportingIndication {
+	RANAP_DataVolumeReportingIndication_do_report	= 0,
+	RANAP_DataVolumeReportingIndication_do_not_report	= 1
+} e_RANAP_DataVolumeReportingIndication;
+
+/* RANAP_DataVolumeReportingIndication */
+typedef long	 RANAP_DataVolumeReportingIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_DataVolumeReportingIndication;
+asn_struct_free_f RANAP_DataVolumeReportingIndication_free;
+asn_struct_print_f RANAP_DataVolumeReportingIndication_print;
+asn_constr_check_f RANAP_DataVolumeReportingIndication_constraint;
+ber_type_decoder_f RANAP_DataVolumeReportingIndication_decode_ber;
+der_type_encoder_f RANAP_DataVolumeReportingIndication_encode_der;
+xer_type_decoder_f RANAP_DataVolumeReportingIndication_decode_xer;
+xer_type_encoder_f RANAP_DataVolumeReportingIndication_encode_xer;
+per_type_decoder_f RANAP_DataVolumeReportingIndication_decode_uper;
+per_type_encoder_f RANAP_DataVolumeReportingIndication_encode_uper;
+per_type_decoder_f RANAP_DataVolumeReportingIndication_decode_aper;
+per_type_encoder_f RANAP_DataVolumeReportingIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_DataVolumeReportingIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_DeliveryOfErroneousSDU.c b/src/ranap/RANAP_DeliveryOfErroneousSDU.c
new file mode 100644
index 0000000..6319390
--- /dev/null
+++ b/src/ranap/RANAP_DeliveryOfErroneousSDU.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_DeliveryOfErroneousSDU.h"
+
+int
+RANAP_DeliveryOfErroneousSDU_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_DeliveryOfErroneousSDU_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_DeliveryOfErroneousSDU_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_DeliveryOfErroneousSDU_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_DeliveryOfErroneousSDU_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DeliveryOfErroneousSDU_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DeliveryOfErroneousSDU_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_DeliveryOfErroneousSDU_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_DeliveryOfErroneousSDU_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DeliveryOfErroneousSDU_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DeliveryOfErroneousSDU_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_DeliveryOfErroneousSDU_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_DeliveryOfErroneousSDU_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DeliveryOfErroneousSDU_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DeliveryOfErroneousSDU_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DeliveryOfErroneousSDU_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_DeliveryOfErroneousSDU_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DeliveryOfErroneousSDU_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_DeliveryOfErroneousSDU_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DeliveryOfErroneousSDU_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_DeliveryOfErroneousSDU_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DeliveryOfErroneousSDU_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_DeliveryOfErroneousSDU_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0l,  2l }	/* (0..2) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_DeliveryOfErroneousSDU_value2enum_1[] = {
+	{ 0,	3,	"yes" },
+	{ 1,	2,	"no" },
+	{ 2,	32,	"no-error-detection-consideration" }
+};
+static const unsigned int asn_MAP_RANAP_DeliveryOfErroneousSDU_enum2value_1[] = {
+	1,	/* no(1) */
+	2,	/* no-error-detection-consideration(2) */
+	0	/* yes(0) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_DeliveryOfErroneousSDU_specs_1 = {
+	asn_MAP_RANAP_DeliveryOfErroneousSDU_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_DeliveryOfErroneousSDU_enum2value_1,	/* N => "tag"; sorted by N */
+	3,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_DeliveryOfErroneousSDU_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_DeliveryOfErroneousSDU = {
+	"RANAP_DeliveryOfErroneousSDU",
+	"RANAP_DeliveryOfErroneousSDU",
+	RANAP_DeliveryOfErroneousSDU_free,
+	RANAP_DeliveryOfErroneousSDU_print,
+	RANAP_DeliveryOfErroneousSDU_constraint,
+	RANAP_DeliveryOfErroneousSDU_decode_ber,
+	RANAP_DeliveryOfErroneousSDU_encode_der,
+	RANAP_DeliveryOfErroneousSDU_decode_xer,
+	RANAP_DeliveryOfErroneousSDU_encode_xer,
+	RANAP_DeliveryOfErroneousSDU_decode_uper,
+	RANAP_DeliveryOfErroneousSDU_encode_uper,
+	RANAP_DeliveryOfErroneousSDU_decode_aper,
+	RANAP_DeliveryOfErroneousSDU_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_DeliveryOfErroneousSDU_tags_1,
+	sizeof(asn_DEF_RANAP_DeliveryOfErroneousSDU_tags_1)
+		/sizeof(asn_DEF_RANAP_DeliveryOfErroneousSDU_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_DeliveryOfErroneousSDU_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_DeliveryOfErroneousSDU_tags_1)
+		/sizeof(asn_DEF_RANAP_DeliveryOfErroneousSDU_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_DeliveryOfErroneousSDU_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_DeliveryOfErroneousSDU_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_DeliveryOfErroneousSDU.h b/src/ranap/RANAP_DeliveryOfErroneousSDU.h
new file mode 100644
index 0000000..6e95465
--- /dev/null
+++ b/src/ranap/RANAP_DeliveryOfErroneousSDU.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_DeliveryOfErroneousSDU_H_
+#define	_RANAP_DeliveryOfErroneousSDU_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_DeliveryOfErroneousSDU {
+	RANAP_DeliveryOfErroneousSDU_yes	= 0,
+	RANAP_DeliveryOfErroneousSDU_no	= 1,
+	RANAP_DeliveryOfErroneousSDU_no_error_detection_consideration	= 2
+} e_RANAP_DeliveryOfErroneousSDU;
+
+/* RANAP_DeliveryOfErroneousSDU */
+typedef long	 RANAP_DeliveryOfErroneousSDU_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_DeliveryOfErroneousSDU;
+asn_struct_free_f RANAP_DeliveryOfErroneousSDU_free;
+asn_struct_print_f RANAP_DeliveryOfErroneousSDU_print;
+asn_constr_check_f RANAP_DeliveryOfErroneousSDU_constraint;
+ber_type_decoder_f RANAP_DeliveryOfErroneousSDU_decode_ber;
+der_type_encoder_f RANAP_DeliveryOfErroneousSDU_encode_der;
+xer_type_decoder_f RANAP_DeliveryOfErroneousSDU_decode_xer;
+xer_type_encoder_f RANAP_DeliveryOfErroneousSDU_encode_xer;
+per_type_decoder_f RANAP_DeliveryOfErroneousSDU_decode_uper;
+per_type_encoder_f RANAP_DeliveryOfErroneousSDU_encode_uper;
+per_type_decoder_f RANAP_DeliveryOfErroneousSDU_decode_aper;
+per_type_encoder_f RANAP_DeliveryOfErroneousSDU_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_DeliveryOfErroneousSDU_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_DeliveryOrder.c b/src/ranap/RANAP_DeliveryOrder.c
new file mode 100644
index 0000000..3f089d2
--- /dev/null
+++ b/src/ranap/RANAP_DeliveryOrder.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_DeliveryOrder.h"
+
+int
+RANAP_DeliveryOrder_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_DeliveryOrder_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_DeliveryOrder_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_DeliveryOrder_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_DeliveryOrder_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DeliveryOrder_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DeliveryOrder_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_DeliveryOrder_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_DeliveryOrder_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DeliveryOrder_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DeliveryOrder_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_DeliveryOrder_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_DeliveryOrder_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DeliveryOrder_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DeliveryOrder_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DeliveryOrder_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_DeliveryOrder_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DeliveryOrder_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_DeliveryOrder_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DeliveryOrder_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_DeliveryOrder_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DeliveryOrder_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_DeliveryOrder_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 1,  1,  0l,  1l }	/* (0..1) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_DeliveryOrder_value2enum_1[] = {
+	{ 0,	24,	"delivery-order-requested" },
+	{ 1,	28,	"delivery-order-not-requested" }
+};
+static const unsigned int asn_MAP_RANAP_DeliveryOrder_enum2value_1[] = {
+	1,	/* delivery-order-not-requested(1) */
+	0	/* delivery-order-requested(0) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_DeliveryOrder_specs_1 = {
+	asn_MAP_RANAP_DeliveryOrder_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_DeliveryOrder_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_DeliveryOrder_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_DeliveryOrder = {
+	"RANAP_DeliveryOrder",
+	"RANAP_DeliveryOrder",
+	RANAP_DeliveryOrder_free,
+	RANAP_DeliveryOrder_print,
+	RANAP_DeliveryOrder_constraint,
+	RANAP_DeliveryOrder_decode_ber,
+	RANAP_DeliveryOrder_encode_der,
+	RANAP_DeliveryOrder_decode_xer,
+	RANAP_DeliveryOrder_encode_xer,
+	RANAP_DeliveryOrder_decode_uper,
+	RANAP_DeliveryOrder_encode_uper,
+	RANAP_DeliveryOrder_decode_aper,
+	RANAP_DeliveryOrder_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_DeliveryOrder_tags_1,
+	sizeof(asn_DEF_RANAP_DeliveryOrder_tags_1)
+		/sizeof(asn_DEF_RANAP_DeliveryOrder_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_DeliveryOrder_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_DeliveryOrder_tags_1)
+		/sizeof(asn_DEF_RANAP_DeliveryOrder_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_DeliveryOrder_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_DeliveryOrder_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_DeliveryOrder.h b/src/ranap/RANAP_DeliveryOrder.h
new file mode 100644
index 0000000..8968908
--- /dev/null
+++ b/src/ranap/RANAP_DeliveryOrder.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_DeliveryOrder_H_
+#define	_RANAP_DeliveryOrder_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_DeliveryOrder {
+	RANAP_DeliveryOrder_delivery_order_requested	= 0,
+	RANAP_DeliveryOrder_delivery_order_not_requested	= 1
+} e_RANAP_DeliveryOrder;
+
+/* RANAP_DeliveryOrder */
+typedef long	 RANAP_DeliveryOrder_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_DeliveryOrder;
+asn_struct_free_f RANAP_DeliveryOrder_free;
+asn_struct_print_f RANAP_DeliveryOrder_print;
+asn_constr_check_f RANAP_DeliveryOrder_constraint;
+ber_type_decoder_f RANAP_DeliveryOrder_decode_ber;
+der_type_encoder_f RANAP_DeliveryOrder_encode_der;
+xer_type_decoder_f RANAP_DeliveryOrder_decode_xer;
+xer_type_encoder_f RANAP_DeliveryOrder_encode_xer;
+per_type_decoder_f RANAP_DeliveryOrder_decode_uper;
+per_type_encoder_f RANAP_DeliveryOrder_encode_uper;
+per_type_decoder_f RANAP_DeliveryOrder_decode_aper;
+per_type_encoder_f RANAP_DeliveryOrder_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_DeliveryOrder_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_DeltaRAListofIdleModeUEs.c b/src/ranap/RANAP_DeltaRAListofIdleModeUEs.c
new file mode 100644
index 0000000..0e89cbb
--- /dev/null
+++ b/src/ranap/RANAP_DeltaRAListofIdleModeUEs.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_DeltaRAListofIdleModeUEs.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_DeltaRAListofIdleModeUEs_1[] = {
+	{ ATF_POINTER, 3, offsetof(struct RANAP_DeltaRAListofIdleModeUEs, newRAListofIdleModeUEs),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_NewRAListofIdleModeUEs,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"newRAListofIdleModeUEs"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_DeltaRAListofIdleModeUEs, rAListwithNoIdleModeUEsAnyMore),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RAListwithNoIdleModeUEsAnyMore,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rAListwithNoIdleModeUEsAnyMore"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_DeltaRAListofIdleModeUEs, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_DeltaRAListofIdleModeUEs_oms_1[] = { 0, 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_DeltaRAListofIdleModeUEs_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_DeltaRAListofIdleModeUEs_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* newRAListofIdleModeUEs */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rAListwithNoIdleModeUEsAnyMore */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_DeltaRAListofIdleModeUEs_specs_1 = {
+	sizeof(struct RANAP_DeltaRAListofIdleModeUEs),
+	offsetof(struct RANAP_DeltaRAListofIdleModeUEs, _asn_ctx),
+	asn_MAP_RANAP_DeltaRAListofIdleModeUEs_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_DeltaRAListofIdleModeUEs_oms_1,	/* Optional members */
+	3, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_DeltaRAListofIdleModeUEs = {
+	"RANAP_DeltaRAListofIdleModeUEs",
+	"RANAP_DeltaRAListofIdleModeUEs",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_DeltaRAListofIdleModeUEs_tags_1,
+	sizeof(asn_DEF_RANAP_DeltaRAListofIdleModeUEs_tags_1)
+		/sizeof(asn_DEF_RANAP_DeltaRAListofIdleModeUEs_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_DeltaRAListofIdleModeUEs_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_DeltaRAListofIdleModeUEs_tags_1)
+		/sizeof(asn_DEF_RANAP_DeltaRAListofIdleModeUEs_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_DeltaRAListofIdleModeUEs_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_DeltaRAListofIdleModeUEs_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_DeltaRAListofIdleModeUEs.h b/src/ranap/RANAP_DeltaRAListofIdleModeUEs.h
new file mode 100644
index 0000000..209c2c5
--- /dev/null
+++ b/src/ranap/RANAP_DeltaRAListofIdleModeUEs.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_DeltaRAListofIdleModeUEs_H_
+#define	_RANAP_DeltaRAListofIdleModeUEs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_NewRAListofIdleModeUEs.h"
+#include "RANAP_RAListwithNoIdleModeUEsAnyMore.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_DeltaRAListofIdleModeUEs */
+typedef struct RANAP_DeltaRAListofIdleModeUEs {
+	RANAP_NewRAListofIdleModeUEs_t	*newRAListofIdleModeUEs	/* OPTIONAL */;
+	RANAP_RAListwithNoIdleModeUEsAnyMore_t	*rAListwithNoIdleModeUEsAnyMore	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_DeltaRAListofIdleModeUEs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_DeltaRAListofIdleModeUEs;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_DeltaRAListofIdleModeUEs_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_DirectInformationTransfer.c b/src/ranap/RANAP_DirectInformationTransfer.c
new file mode 100644
index 0000000..06444c3
--- /dev/null
+++ b/src/ranap/RANAP_DirectInformationTransfer.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_DirectInformationTransfer.h"
+
+static int
+memb_directInformationTransfer_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_directInformationTransfer_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_directInformationTransfer_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_directInformationTransfer_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_directInformationTransfer_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_directInformationTransfer_ies_specs_2 = {
+	sizeof(struct directInformationTransfer_ies),
+	offsetof(struct directInformationTransfer_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_directInformationTransfer_ies_2 = {
+	"directInformationTransfer-ies",
+	"directInformationTransfer-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_directInformationTransfer_ies_tags_2,
+	sizeof(asn_DEF_directInformationTransfer_ies_tags_2)
+		/sizeof(asn_DEF_directInformationTransfer_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_directInformationTransfer_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_directInformationTransfer_ies_tags_2)
+		/sizeof(asn_DEF_directInformationTransfer_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_directInformationTransfer_ies_constr_2,
+	asn_MBR_directInformationTransfer_ies_2,
+	1,	/* Single element */
+	&asn_SPC_directInformationTransfer_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_DirectInformationTransfer_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_DirectInformationTransfer, directInformationTransfer_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_directInformationTransfer_ies_2,
+		memb_directInformationTransfer_ies_constraint_1,
+		&asn_PER_memb_directInformationTransfer_ies_constr_2,
+		0,
+		"directInformationTransfer-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_DirectInformationTransfer_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_DirectInformationTransfer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* directInformationTransfer-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_DirectInformationTransfer_specs_1 = {
+	sizeof(struct RANAP_DirectInformationTransfer),
+	offsetof(struct RANAP_DirectInformationTransfer, _asn_ctx),
+	asn_MAP_RANAP_DirectInformationTransfer_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_DirectInformationTransfer = {
+	"RANAP_DirectInformationTransfer",
+	"RANAP_DirectInformationTransfer",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_DirectInformationTransfer_tags_1,
+	sizeof(asn_DEF_RANAP_DirectInformationTransfer_tags_1)
+		/sizeof(asn_DEF_RANAP_DirectInformationTransfer_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_DirectInformationTransfer_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_DirectInformationTransfer_tags_1)
+		/sizeof(asn_DEF_RANAP_DirectInformationTransfer_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_DirectInformationTransfer_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_DirectInformationTransfer_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_DirectInformationTransfer.h b/src/ranap/RANAP_DirectInformationTransfer.h
new file mode 100644
index 0000000..bc2b851
--- /dev/null
+++ b/src/ranap/RANAP_DirectInformationTransfer.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_DirectInformationTransfer_H_
+#define	_RANAP_DirectInformationTransfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_DirectInformationTransfer */
+typedef struct RANAP_DirectInformationTransfer {
+	struct directInformationTransfer_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} directInformationTransfer_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_DirectInformationTransfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_DirectInformationTransfer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_DirectInformationTransfer_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_DirectReportingIndicator.c b/src/ranap/RANAP_DirectReportingIndicator.c
new file mode 100644
index 0000000..27a798f
--- /dev/null
+++ b/src/ranap/RANAP_DirectReportingIndicator.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_DirectReportingIndicator.h"
+
+int
+RANAP_DirectReportingIndicator_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_DirectReportingIndicator_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_DirectReportingIndicator_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_DirectReportingIndicator_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_DirectReportingIndicator_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DirectReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DirectReportingIndicator_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_DirectReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_DirectReportingIndicator_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DirectReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DirectReportingIndicator_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_DirectReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_DirectReportingIndicator_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_DirectReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_DirectReportingIndicator_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DirectReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_DirectReportingIndicator_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DirectReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_DirectReportingIndicator_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_DirectReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_DirectReportingIndicator_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_DirectReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_DirectReportingIndicator_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_DirectReportingIndicator_value2enum_1[] = {
+	{ 0,	9,	"directSAI" },
+	{ 1,	9,	"directGeo" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_DirectReportingIndicator_enum2value_1[] = {
+	1,	/* directGeo(1) */
+	0	/* directSAI(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_DirectReportingIndicator_specs_1 = {
+	asn_MAP_RANAP_DirectReportingIndicator_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_DirectReportingIndicator_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_DirectReportingIndicator_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_DirectReportingIndicator = {
+	"RANAP_DirectReportingIndicator",
+	"RANAP_DirectReportingIndicator",
+	RANAP_DirectReportingIndicator_free,
+	RANAP_DirectReportingIndicator_print,
+	RANAP_DirectReportingIndicator_constraint,
+	RANAP_DirectReportingIndicator_decode_ber,
+	RANAP_DirectReportingIndicator_encode_der,
+	RANAP_DirectReportingIndicator_decode_xer,
+	RANAP_DirectReportingIndicator_encode_xer,
+	RANAP_DirectReportingIndicator_decode_uper,
+	RANAP_DirectReportingIndicator_encode_uper,
+	RANAP_DirectReportingIndicator_decode_aper,
+	RANAP_DirectReportingIndicator_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_DirectReportingIndicator_tags_1,
+	sizeof(asn_DEF_RANAP_DirectReportingIndicator_tags_1)
+		/sizeof(asn_DEF_RANAP_DirectReportingIndicator_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_DirectReportingIndicator_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_DirectReportingIndicator_tags_1)
+		/sizeof(asn_DEF_RANAP_DirectReportingIndicator_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_DirectReportingIndicator_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_DirectReportingIndicator_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_DirectReportingIndicator.h b/src/ranap/RANAP_DirectReportingIndicator.h
new file mode 100644
index 0000000..8636557
--- /dev/null
+++ b/src/ranap/RANAP_DirectReportingIndicator.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_DirectReportingIndicator_H_
+#define	_RANAP_DirectReportingIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_DirectReportingIndicator {
+	RANAP_DirectReportingIndicator_directSAI	= 0,
+	RANAP_DirectReportingIndicator_directGeo	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_DirectReportingIndicator;
+
+/* RANAP_DirectReportingIndicator */
+typedef long	 RANAP_DirectReportingIndicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_DirectReportingIndicator;
+asn_struct_free_f RANAP_DirectReportingIndicator_free;
+asn_struct_print_f RANAP_DirectReportingIndicator_print;
+asn_constr_check_f RANAP_DirectReportingIndicator_constraint;
+ber_type_decoder_f RANAP_DirectReportingIndicator_decode_ber;
+der_type_encoder_f RANAP_DirectReportingIndicator_encode_der;
+xer_type_decoder_f RANAP_DirectReportingIndicator_decode_xer;
+xer_type_encoder_f RANAP_DirectReportingIndicator_encode_xer;
+per_type_decoder_f RANAP_DirectReportingIndicator_decode_uper;
+per_type_encoder_f RANAP_DirectReportingIndicator_encode_uper;
+per_type_decoder_f RANAP_DirectReportingIndicator_decode_aper;
+per_type_encoder_f RANAP_DirectReportingIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_DirectReportingIndicator_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_DirectTransfer.c b/src/ranap/RANAP_DirectTransfer.c
new file mode 100644
index 0000000..44ce20d
--- /dev/null
+++ b/src/ranap/RANAP_DirectTransfer.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_DirectTransfer.h"
+
+static int
+memb_directTransfer_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_directTransfer_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_directTransfer_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_directTransfer_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_directTransfer_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_directTransfer_ies_specs_2 = {
+	sizeof(struct directTransfer_ies),
+	offsetof(struct directTransfer_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_directTransfer_ies_2 = {
+	"directTransfer-ies",
+	"directTransfer-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_directTransfer_ies_tags_2,
+	sizeof(asn_DEF_directTransfer_ies_tags_2)
+		/sizeof(asn_DEF_directTransfer_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_directTransfer_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_directTransfer_ies_tags_2)
+		/sizeof(asn_DEF_directTransfer_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_directTransfer_ies_constr_2,
+	asn_MBR_directTransfer_ies_2,
+	1,	/* Single element */
+	&asn_SPC_directTransfer_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_DirectTransfer_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_DirectTransfer, directTransfer_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_directTransfer_ies_2,
+		memb_directTransfer_ies_constraint_1,
+		&asn_PER_memb_directTransfer_ies_constr_2,
+		0,
+		"directTransfer-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_DirectTransfer_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_DirectTransfer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* directTransfer-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_DirectTransfer_specs_1 = {
+	sizeof(struct RANAP_DirectTransfer),
+	offsetof(struct RANAP_DirectTransfer, _asn_ctx),
+	asn_MAP_RANAP_DirectTransfer_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_DirectTransfer = {
+	"RANAP_DirectTransfer",
+	"RANAP_DirectTransfer",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_DirectTransfer_tags_1,
+	sizeof(asn_DEF_RANAP_DirectTransfer_tags_1)
+		/sizeof(asn_DEF_RANAP_DirectTransfer_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_DirectTransfer_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_DirectTransfer_tags_1)
+		/sizeof(asn_DEF_RANAP_DirectTransfer_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_DirectTransfer_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_DirectTransfer_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_DirectTransfer.h b/src/ranap/RANAP_DirectTransfer.h
new file mode 100644
index 0000000..7258755
--- /dev/null
+++ b/src/ranap/RANAP_DirectTransfer.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_DirectTransfer_H_
+#define	_RANAP_DirectTransfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_DirectTransfer */
+typedef struct RANAP_DirectTransfer {
+	struct directTransfer_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} directTransfer_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_DirectTransfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_DirectTransfer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_DirectTransfer_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_E-DCH-MAC-d-Flow-ID.c b/src/ranap/RANAP_E-DCH-MAC-d-Flow-ID.c
new file mode 100644
index 0000000..cbd9fee
--- /dev/null
+++ b/src/ranap/RANAP_E-DCH-MAC-d-Flow-ID.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_E-DCH-MAC-d-Flow-ID.h"
+
+int
+RANAP_E_DCH_MAC_d_Flow_ID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 7l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_E_DCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_E_DCH_MAC_d_Flow_ID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_E_DCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_E_DCH_MAC_d_Flow_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_E_DCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_E_DCH_MAC_d_Flow_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_E_DCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_E_DCH_MAC_d_Flow_ID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_E_DCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_E_DCH_MAC_d_Flow_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_E_DCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_E_DCH_MAC_d_Flow_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_E_DCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_E_DCH_MAC_d_Flow_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_E_DCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_E_DCH_MAC_d_Flow_ID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_E_DCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_E_DCH_MAC_d_Flow_ID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_E_DCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_E_DCH_MAC_d_Flow_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_E_DCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_E_DCH_MAC_d_Flow_ID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 3,  3,  0l,  7l }	/* (0..7) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_E_DCH_MAC_d_Flow_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_E_DCH_MAC_d_Flow_ID = {
+	"RANAP_E-DCH-MAC-d-Flow-ID",
+	"RANAP_E-DCH-MAC-d-Flow-ID",
+	RANAP_E_DCH_MAC_d_Flow_ID_free,
+	RANAP_E_DCH_MAC_d_Flow_ID_print,
+	RANAP_E_DCH_MAC_d_Flow_ID_constraint,
+	RANAP_E_DCH_MAC_d_Flow_ID_decode_ber,
+	RANAP_E_DCH_MAC_d_Flow_ID_encode_der,
+	RANAP_E_DCH_MAC_d_Flow_ID_decode_xer,
+	RANAP_E_DCH_MAC_d_Flow_ID_encode_xer,
+	RANAP_E_DCH_MAC_d_Flow_ID_decode_uper,
+	RANAP_E_DCH_MAC_d_Flow_ID_encode_uper,
+	RANAP_E_DCH_MAC_d_Flow_ID_decode_aper,
+	RANAP_E_DCH_MAC_d_Flow_ID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_E_DCH_MAC_d_Flow_ID_tags_1,
+	sizeof(asn_DEF_RANAP_E_DCH_MAC_d_Flow_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_E_DCH_MAC_d_Flow_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_E_DCH_MAC_d_Flow_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_E_DCH_MAC_d_Flow_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_E_DCH_MAC_d_Flow_ID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_E_DCH_MAC_d_Flow_ID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_E-DCH-MAC-d-Flow-ID.h b/src/ranap/RANAP_E-DCH-MAC-d-Flow-ID.h
new file mode 100644
index 0000000..6fc0fda
--- /dev/null
+++ b/src/ranap/RANAP_E-DCH-MAC-d-Flow-ID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_E_DCH_MAC_d_Flow_ID_H_
+#define	_RANAP_E_DCH_MAC_d_Flow_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_E-DCH-MAC-d-Flow-ID */
+typedef long	 RANAP_E_DCH_MAC_d_Flow_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_E_DCH_MAC_d_Flow_ID;
+asn_struct_free_f RANAP_E_DCH_MAC_d_Flow_ID_free;
+asn_struct_print_f RANAP_E_DCH_MAC_d_Flow_ID_print;
+asn_constr_check_f RANAP_E_DCH_MAC_d_Flow_ID_constraint;
+ber_type_decoder_f RANAP_E_DCH_MAC_d_Flow_ID_decode_ber;
+der_type_encoder_f RANAP_E_DCH_MAC_d_Flow_ID_encode_der;
+xer_type_decoder_f RANAP_E_DCH_MAC_d_Flow_ID_decode_xer;
+xer_type_encoder_f RANAP_E_DCH_MAC_d_Flow_ID_encode_xer;
+per_type_decoder_f RANAP_E_DCH_MAC_d_Flow_ID_decode_uper;
+per_type_encoder_f RANAP_E_DCH_MAC_d_Flow_ID_encode_uper;
+per_type_decoder_f RANAP_E_DCH_MAC_d_Flow_ID_decode_aper;
+per_type_encoder_f RANAP_E_DCH_MAC_d_Flow_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_E_DCH_MAC_d_Flow_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_E-UTRAN-Service-Handover.c b/src/ranap/RANAP_E-UTRAN-Service-Handover.c
new file mode 100644
index 0000000..0eb7a82
--- /dev/null
+++ b/src/ranap/RANAP_E-UTRAN-Service-Handover.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_E-UTRAN-Service-Handover.h"
+
+int
+RANAP_E_UTRAN_Service_Handover_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_E_UTRAN_Service_Handover_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_E_UTRAN_Service_Handover_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_E_UTRAN_Service_Handover_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_E_UTRAN_Service_Handover_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_E_UTRAN_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_E_UTRAN_Service_Handover_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_E_UTRAN_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_E_UTRAN_Service_Handover_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_E_UTRAN_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_E_UTRAN_Service_Handover_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_E_UTRAN_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_E_UTRAN_Service_Handover_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_E_UTRAN_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_E_UTRAN_Service_Handover_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_E_UTRAN_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_E_UTRAN_Service_Handover_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_E_UTRAN_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_E_UTRAN_Service_Handover_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_E_UTRAN_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_E_UTRAN_Service_Handover_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_E_UTRAN_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_E_UTRAN_Service_Handover_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_E_UTRAN_Service_Handover_value2enum_1[] = {
+	{ 0,	42,	"handover-to-E-UTRAN-shall-not-be-performed" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_E_UTRAN_Service_Handover_enum2value_1[] = {
+	0	/* handover-to-E-UTRAN-shall-not-be-performed(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_E_UTRAN_Service_Handover_specs_1 = {
+	asn_MAP_RANAP_E_UTRAN_Service_Handover_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_E_UTRAN_Service_Handover_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_E_UTRAN_Service_Handover_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_E_UTRAN_Service_Handover = {
+	"RANAP_E-UTRAN-Service-Handover",
+	"RANAP_E-UTRAN-Service-Handover",
+	RANAP_E_UTRAN_Service_Handover_free,
+	RANAP_E_UTRAN_Service_Handover_print,
+	RANAP_E_UTRAN_Service_Handover_constraint,
+	RANAP_E_UTRAN_Service_Handover_decode_ber,
+	RANAP_E_UTRAN_Service_Handover_encode_der,
+	RANAP_E_UTRAN_Service_Handover_decode_xer,
+	RANAP_E_UTRAN_Service_Handover_encode_xer,
+	RANAP_E_UTRAN_Service_Handover_decode_uper,
+	RANAP_E_UTRAN_Service_Handover_encode_uper,
+	RANAP_E_UTRAN_Service_Handover_decode_aper,
+	RANAP_E_UTRAN_Service_Handover_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_E_UTRAN_Service_Handover_tags_1,
+	sizeof(asn_DEF_RANAP_E_UTRAN_Service_Handover_tags_1)
+		/sizeof(asn_DEF_RANAP_E_UTRAN_Service_Handover_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_E_UTRAN_Service_Handover_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_E_UTRAN_Service_Handover_tags_1)
+		/sizeof(asn_DEF_RANAP_E_UTRAN_Service_Handover_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_E_UTRAN_Service_Handover_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_E_UTRAN_Service_Handover_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_E-UTRAN-Service-Handover.h b/src/ranap/RANAP_E-UTRAN-Service-Handover.h
new file mode 100644
index 0000000..689c743
--- /dev/null
+++ b/src/ranap/RANAP_E-UTRAN-Service-Handover.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_E_UTRAN_Service_Handover_H_
+#define	_RANAP_E_UTRAN_Service_Handover_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_E_UTRAN_Service_Handover {
+	RANAP_E_UTRAN_Service_Handover_handover_to_E_UTRAN_shall_not_be_performed	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_E_UTRAN_Service_Handover;
+
+/* RANAP_E-UTRAN-Service-Handover */
+typedef long	 RANAP_E_UTRAN_Service_Handover_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_E_UTRAN_Service_Handover;
+asn_struct_free_f RANAP_E_UTRAN_Service_Handover_free;
+asn_struct_print_f RANAP_E_UTRAN_Service_Handover_print;
+asn_constr_check_f RANAP_E_UTRAN_Service_Handover_constraint;
+ber_type_decoder_f RANAP_E_UTRAN_Service_Handover_decode_ber;
+der_type_encoder_f RANAP_E_UTRAN_Service_Handover_encode_der;
+xer_type_decoder_f RANAP_E_UTRAN_Service_Handover_decode_xer;
+xer_type_encoder_f RANAP_E_UTRAN_Service_Handover_encode_xer;
+per_type_decoder_f RANAP_E_UTRAN_Service_Handover_decode_uper;
+per_type_encoder_f RANAP_E_UTRAN_Service_Handover_encode_uper;
+per_type_decoder_f RANAP_E_UTRAN_Service_Handover_decode_aper;
+per_type_encoder_f RANAP_E_UTRAN_Service_Handover_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_E_UTRAN_Service_Handover_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_EARFCN-Extended.c b/src/ranap/RANAP_EARFCN-Extended.c
new file mode 100644
index 0000000..c1888b5
--- /dev/null
+++ b/src/ranap/RANAP_EARFCN-Extended.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_EARFCN-Extended.h"
+
+int
+RANAP_EARFCN_Extended_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 65536l && value <= 262143l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_EARFCN_Extended_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_EARFCN_Extended_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_EARFCN_Extended_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_EARFCN_Extended_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_EARFCN_Extended_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_EARFCN_Extended_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_EARFCN_Extended_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_EARFCN_Extended_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_EARFCN_Extended_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_EARFCN_Extended_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_EARFCN_Extended_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_EARFCN_Extended_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_EARFCN_Extended_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_EARFCN_Extended_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_EARFCN_Extended_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_EARFCN_Extended_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_EARFCN_Extended_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_EARFCN_Extended_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_EARFCN_Extended_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_EARFCN_Extended_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_EARFCN_Extended_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_EARFCN_Extended_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  18, -1,  65536l,  262143l }	/* (65536..262143,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_EARFCN_Extended_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_EARFCN_Extended = {
+	"RANAP_EARFCN-Extended",
+	"RANAP_EARFCN-Extended",
+	RANAP_EARFCN_Extended_free,
+	RANAP_EARFCN_Extended_print,
+	RANAP_EARFCN_Extended_constraint,
+	RANAP_EARFCN_Extended_decode_ber,
+	RANAP_EARFCN_Extended_encode_der,
+	RANAP_EARFCN_Extended_decode_xer,
+	RANAP_EARFCN_Extended_encode_xer,
+	RANAP_EARFCN_Extended_decode_uper,
+	RANAP_EARFCN_Extended_encode_uper,
+	RANAP_EARFCN_Extended_decode_aper,
+	RANAP_EARFCN_Extended_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_EARFCN_Extended_tags_1,
+	sizeof(asn_DEF_RANAP_EARFCN_Extended_tags_1)
+		/sizeof(asn_DEF_RANAP_EARFCN_Extended_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_EARFCN_Extended_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_EARFCN_Extended_tags_1)
+		/sizeof(asn_DEF_RANAP_EARFCN_Extended_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_EARFCN_Extended_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_EARFCN-Extended.h b/src/ranap/RANAP_EARFCN-Extended.h
new file mode 100644
index 0000000..9b84df4
--- /dev/null
+++ b/src/ranap/RANAP_EARFCN-Extended.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_EARFCN_Extended_H_
+#define	_RANAP_EARFCN_Extended_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_EARFCN-Extended */
+typedef long	 RANAP_EARFCN_Extended_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_EARFCN_Extended;
+asn_struct_free_f RANAP_EARFCN_Extended_free;
+asn_struct_print_f RANAP_EARFCN_Extended_print;
+asn_constr_check_f RANAP_EARFCN_Extended_constraint;
+ber_type_decoder_f RANAP_EARFCN_Extended_decode_ber;
+der_type_encoder_f RANAP_EARFCN_Extended_encode_der;
+xer_type_decoder_f RANAP_EARFCN_Extended_decode_xer;
+xer_type_encoder_f RANAP_EARFCN_Extended_encode_xer;
+per_type_decoder_f RANAP_EARFCN_Extended_decode_uper;
+per_type_encoder_f RANAP_EARFCN_Extended_encode_uper;
+per_type_decoder_f RANAP_EARFCN_Extended_decode_aper;
+per_type_encoder_f RANAP_EARFCN_Extended_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_EARFCN_Extended_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ENB-ID.c b/src/ranap/RANAP_ENB-ID.c
new file mode 100644
index 0000000..67859b3
--- /dev/null
+++ b/src/ranap/RANAP_ENB-ID.c
@@ -0,0 +1,144 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ENB-ID.h"
+
+static int
+memb_macroENB_ID_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 20l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_homeENB_ID_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 28l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_macroENB_ID_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  20l,  20l }	/* (SIZE(20..20)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_homeENB_ID_constr_3 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  28l,  28l }	/* (SIZE(28..28)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_type_RANAP_ENB_ID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_ENB_ID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_ENB_ID, choice.macroENB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		memb_macroENB_ID_constraint_1,
+		&asn_PER_memb_macroENB_ID_constr_2,
+		0,
+		"macroENB-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_ENB_ID, choice.homeENB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		memb_homeENB_ID_constraint_1,
+		&asn_PER_memb_homeENB_ID_constr_3,
+		0,
+		"homeENB-ID"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_ENB_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macroENB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* homeENB-ID */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_ENB_ID_specs_1 = {
+	sizeof(struct RANAP_ENB_ID),
+	offsetof(struct RANAP_ENB_ID, _asn_ctx),
+	offsetof(struct RANAP_ENB_ID, present),
+	sizeof(((struct RANAP_ENB_ID *)0)->present),
+	asn_MAP_RANAP_ENB_ID_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ENB_ID = {
+	"RANAP_ENB-ID",
+	"RANAP_ENB-ID",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_ENB_ID_constr_1,
+	asn_MBR_RANAP_ENB_ID_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_ENB_ID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ENB-ID.h b/src/ranap/RANAP_ENB-ID.h
new file mode 100644
index 0000000..4a0a3c6
--- /dev/null
+++ b/src/ranap/RANAP_ENB-ID.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ENB_ID_H_
+#define	_RANAP_ENB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_ENB_ID_PR {
+	RANAP_ENB_ID_PR_NOTHING,	/* No components present */
+	RANAP_ENB_ID_PR_macroENB_ID,
+	RANAP_ENB_ID_PR_homeENB_ID,
+	/* Extensions may appear below */
+	
+} RANAP_ENB_ID_PR;
+
+/* RANAP_ENB-ID */
+typedef struct RANAP_ENB_ID {
+	RANAP_ENB_ID_PR present;
+	union RANAP_ENB_ID_u {
+		BIT_STRING_t	 macroENB_ID;
+		BIT_STRING_t	 homeENB_ID;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_ENB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ENB_ID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ENB_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_EUTRANFrequencies.c b/src/ranap/RANAP_EUTRANFrequencies.c
new file mode 100644
index 0000000..2420cd7
--- /dev/null
+++ b/src/ranap/RANAP_EUTRANFrequencies.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_EUTRANFrequencies.h"
+
+static int
+memb_earfcn_constraint_2(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 65535l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_earfcn_constr_3 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_type_RANAP_EUTRANFrequencies_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 3,  3,  1l,  8l }	/* (SIZE(1..8)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct Member, earfcn),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_earfcn_constraint_2,
+		&asn_PER_memb_earfcn_constr_3,
+		0,
+		"earfcn"
+		},
+	{ ATF_POINTER, 2, offsetof(struct Member, measBand),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_MeasBand,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"measBand"
+		},
+	{ ATF_POINTER, 1, offsetof(struct Member, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_Member_oms_2[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* earfcn */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measBand */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+	sizeof(struct Member),
+	offsetof(struct Member, _asn_ctx),
+	asn_MAP_Member_tag2el_2,
+	3,	/* Count of tags in the map */
+	asn_MAP_Member_oms_2,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+	"SEQUENCE",
+	"SEQUENCE",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_Member_tags_2,
+	sizeof(asn_DEF_Member_tags_2)
+		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	asn_DEF_Member_tags_2,	/* Same as above */
+	sizeof(asn_DEF_Member_tags_2)
+		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_Member_2,
+	3,	/* Elements count */
+	&asn_SPC_Member_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_EUTRANFrequencies_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_Member_2,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_EUTRANFrequencies_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_EUTRANFrequencies_specs_1 = {
+	sizeof(struct RANAP_EUTRANFrequencies),
+	offsetof(struct RANAP_EUTRANFrequencies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_EUTRANFrequencies = {
+	"RANAP_EUTRANFrequencies",
+	"RANAP_EUTRANFrequencies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_EUTRANFrequencies_tags_1,
+	sizeof(asn_DEF_RANAP_EUTRANFrequencies_tags_1)
+		/sizeof(asn_DEF_RANAP_EUTRANFrequencies_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_EUTRANFrequencies_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_EUTRANFrequencies_tags_1)
+		/sizeof(asn_DEF_RANAP_EUTRANFrequencies_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_EUTRANFrequencies_constr_1,
+	asn_MBR_RANAP_EUTRANFrequencies_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_EUTRANFrequencies_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_EUTRANFrequencies.h b/src/ranap/RANAP_EUTRANFrequencies.h
new file mode 100644
index 0000000..cc7588c
--- /dev/null
+++ b/src/ranap/RANAP_EUTRANFrequencies.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_EUTRANFrequencies_H_
+#define	_RANAP_EUTRANFrequencies_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <NativeInteger.h>
+#include "RANAP_MeasBand.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_EUTRANFrequencies */
+typedef struct RANAP_EUTRANFrequencies {
+	A_SEQUENCE_OF(struct Member {
+		long	 earfcn;
+		RANAP_MeasBand_t	*measBand	/* OPTIONAL */;
+		RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_EUTRANFrequencies_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_EUTRANFrequencies;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_EUTRANFrequencies_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_EncryptionAlgorithm.c b/src/ranap/RANAP_EncryptionAlgorithm.c
new file mode 100644
index 0000000..aa24b16
--- /dev/null
+++ b/src/ranap/RANAP_EncryptionAlgorithm.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_EncryptionAlgorithm.h"
+
+int
+RANAP_EncryptionAlgorithm_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 15l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_EncryptionAlgorithm_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_EncryptionAlgorithm_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_EncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_EncryptionAlgorithm_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_EncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_EncryptionAlgorithm_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_EncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_EncryptionAlgorithm_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_EncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_EncryptionAlgorithm_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_EncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_EncryptionAlgorithm_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_EncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_EncryptionAlgorithm_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_EncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_EncryptionAlgorithm_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_EncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_EncryptionAlgorithm_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_EncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_EncryptionAlgorithm_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_EncryptionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_EncryptionAlgorithm_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 4,  4,  0l,  15l }	/* (0..15) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_EncryptionAlgorithm_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_EncryptionAlgorithm = {
+	"RANAP_EncryptionAlgorithm",
+	"RANAP_EncryptionAlgorithm",
+	RANAP_EncryptionAlgorithm_free,
+	RANAP_EncryptionAlgorithm_print,
+	RANAP_EncryptionAlgorithm_constraint,
+	RANAP_EncryptionAlgorithm_decode_ber,
+	RANAP_EncryptionAlgorithm_encode_der,
+	RANAP_EncryptionAlgorithm_decode_xer,
+	RANAP_EncryptionAlgorithm_encode_xer,
+	RANAP_EncryptionAlgorithm_decode_uper,
+	RANAP_EncryptionAlgorithm_encode_uper,
+	RANAP_EncryptionAlgorithm_decode_aper,
+	RANAP_EncryptionAlgorithm_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_EncryptionAlgorithm_tags_1,
+	sizeof(asn_DEF_RANAP_EncryptionAlgorithm_tags_1)
+		/sizeof(asn_DEF_RANAP_EncryptionAlgorithm_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_EncryptionAlgorithm_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_EncryptionAlgorithm_tags_1)
+		/sizeof(asn_DEF_RANAP_EncryptionAlgorithm_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_EncryptionAlgorithm_constr_1,
+	0, 0,	/* Defined elsewhere */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_EncryptionAlgorithm.h b/src/ranap/RANAP_EncryptionAlgorithm.h
new file mode 100644
index 0000000..99f5b62
--- /dev/null
+++ b/src/ranap/RANAP_EncryptionAlgorithm.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_EncryptionAlgorithm_H_
+#define	_RANAP_EncryptionAlgorithm_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_EncryptionAlgorithm {
+	RANAP_EncryptionAlgorithm_no_encryption	= 0,
+	RANAP_EncryptionAlgorithm_standard_UMTS_encryption_algorith_UEA1	= 1,
+	RANAP_EncryptionAlgorithm_standard_UMTS_encryption_algorithm_UEA2	= 2
+} e_RANAP_EncryptionAlgorithm;
+
+/* RANAP_EncryptionAlgorithm */
+typedef long	 RANAP_EncryptionAlgorithm_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_EncryptionAlgorithm;
+asn_struct_free_f RANAP_EncryptionAlgorithm_free;
+asn_struct_print_f RANAP_EncryptionAlgorithm_print;
+asn_constr_check_f RANAP_EncryptionAlgorithm_constraint;
+ber_type_decoder_f RANAP_EncryptionAlgorithm_decode_ber;
+der_type_encoder_f RANAP_EncryptionAlgorithm_encode_der;
+xer_type_decoder_f RANAP_EncryptionAlgorithm_decode_xer;
+xer_type_encoder_f RANAP_EncryptionAlgorithm_encode_xer;
+per_type_decoder_f RANAP_EncryptionAlgorithm_decode_uper;
+per_type_encoder_f RANAP_EncryptionAlgorithm_encode_uper;
+per_type_decoder_f RANAP_EncryptionAlgorithm_decode_aper;
+per_type_encoder_f RANAP_EncryptionAlgorithm_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_EncryptionAlgorithm_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_EncryptionInformation.c b/src/ranap/RANAP_EncryptionInformation.c
new file mode 100644
index 0000000..6d586bb
--- /dev/null
+++ b/src/ranap/RANAP_EncryptionInformation.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_EncryptionInformation.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_EncryptionInformation_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_EncryptionInformation, permittedAlgorithms),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PermittedEncryptionAlgorithms,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"permittedAlgorithms"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_EncryptionInformation, key),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_EncryptionKey,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"key"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_EncryptionInformation, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_EncryptionInformation_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_EncryptionInformation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_EncryptionInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* permittedAlgorithms */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* key */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_EncryptionInformation_specs_1 = {
+	sizeof(struct RANAP_EncryptionInformation),
+	offsetof(struct RANAP_EncryptionInformation, _asn_ctx),
+	asn_MAP_RANAP_EncryptionInformation_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_EncryptionInformation_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_EncryptionInformation = {
+	"RANAP_EncryptionInformation",
+	"RANAP_EncryptionInformation",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_EncryptionInformation_tags_1,
+	sizeof(asn_DEF_RANAP_EncryptionInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_EncryptionInformation_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_EncryptionInformation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_EncryptionInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_EncryptionInformation_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_EncryptionInformation_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_EncryptionInformation_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_EncryptionInformation.h b/src/ranap/RANAP_EncryptionInformation.h
new file mode 100644
index 0000000..942108d
--- /dev/null
+++ b/src/ranap/RANAP_EncryptionInformation.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_EncryptionInformation_H_
+#define	_RANAP_EncryptionInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PermittedEncryptionAlgorithms.h"
+#include "RANAP_EncryptionKey.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_EncryptionInformation */
+typedef struct RANAP_EncryptionInformation {
+	RANAP_PermittedEncryptionAlgorithms_t	 permittedAlgorithms;
+	RANAP_EncryptionKey_t	 key;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_EncryptionInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_EncryptionInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_EncryptionInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_EncryptionKey.c b/src/ranap/RANAP_EncryptionKey.c
new file mode 100644
index 0000000..fc8dc45
--- /dev/null
+++ b/src/ranap/RANAP_EncryptionKey.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_EncryptionKey.h"
+
+int
+RANAP_EncryptionKey_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 128l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_EncryptionKey_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_BIT_STRING.free_struct;
+	td->print_struct   = asn_DEF_BIT_STRING.print_struct;
+	td->check_constraints = asn_DEF_BIT_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_BIT_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_BIT_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_BIT_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_BIT_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_BIT_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_BIT_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_BIT_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_BIT_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_BIT_STRING.per_constraints;
+	td->elements       = asn_DEF_BIT_STRING.elements;
+	td->elements_count = asn_DEF_BIT_STRING.elements_count;
+	td->specifics      = asn_DEF_BIT_STRING.specifics;
+}
+
+void
+RANAP_EncryptionKey_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_EncryptionKey_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_EncryptionKey_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_EncryptionKey_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_EncryptionKey_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_EncryptionKey_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_EncryptionKey_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_EncryptionKey_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_EncryptionKey_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_EncryptionKey_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_EncryptionKey_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_EncryptionKey_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_EncryptionKey_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_EncryptionKey_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_EncryptionKey_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_EncryptionKey_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_EncryptionKey_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_EncryptionKey_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_EncryptionKey_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_EncryptionKey_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_EncryptionKey_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  128l,  128l }	/* (SIZE(128..128)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_EncryptionKey_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_EncryptionKey = {
+	"RANAP_EncryptionKey",
+	"RANAP_EncryptionKey",
+	RANAP_EncryptionKey_free,
+	RANAP_EncryptionKey_print,
+	RANAP_EncryptionKey_constraint,
+	RANAP_EncryptionKey_decode_ber,
+	RANAP_EncryptionKey_encode_der,
+	RANAP_EncryptionKey_decode_xer,
+	RANAP_EncryptionKey_encode_xer,
+	RANAP_EncryptionKey_decode_uper,
+	RANAP_EncryptionKey_encode_uper,
+	RANAP_EncryptionKey_decode_aper,
+	RANAP_EncryptionKey_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_EncryptionKey_tags_1,
+	sizeof(asn_DEF_RANAP_EncryptionKey_tags_1)
+		/sizeof(asn_DEF_RANAP_EncryptionKey_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_EncryptionKey_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_EncryptionKey_tags_1)
+		/sizeof(asn_DEF_RANAP_EncryptionKey_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_EncryptionKey_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_EncryptionKey.h b/src/ranap/RANAP_EncryptionKey.h
new file mode 100644
index 0000000..7173803
--- /dev/null
+++ b/src/ranap/RANAP_EncryptionKey.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_EncryptionKey_H_
+#define	_RANAP_EncryptionKey_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_EncryptionKey */
+typedef BIT_STRING_t	 RANAP_EncryptionKey_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_EncryptionKey;
+asn_struct_free_f RANAP_EncryptionKey_free;
+asn_struct_print_f RANAP_EncryptionKey_print;
+asn_constr_check_f RANAP_EncryptionKey_constraint;
+ber_type_decoder_f RANAP_EncryptionKey_decode_ber;
+der_type_encoder_f RANAP_EncryptionKey_encode_der;
+xer_type_decoder_f RANAP_EncryptionKey_decode_xer;
+xer_type_encoder_f RANAP_EncryptionKey_encode_xer;
+per_type_decoder_f RANAP_EncryptionKey_decode_uper;
+per_type_encoder_f RANAP_EncryptionKey_encode_uper;
+per_type_decoder_f RANAP_EncryptionKey_decode_aper;
+per_type_encoder_f RANAP_EncryptionKey_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_EncryptionKey_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_End-Of-CSFB.c b/src/ranap/RANAP_End-Of-CSFB.c
new file mode 100644
index 0000000..534fb5a
--- /dev/null
+++ b/src/ranap/RANAP_End-Of-CSFB.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_End-Of-CSFB.h"
+
+int
+RANAP_End_Of_CSFB_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_End_Of_CSFB_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_End_Of_CSFB_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_End_Of_CSFB_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_End_Of_CSFB_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_End_Of_CSFB_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_End_Of_CSFB_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_End_Of_CSFB_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_End_Of_CSFB_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_End_Of_CSFB_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_End_Of_CSFB_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_End_Of_CSFB_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_End_Of_CSFB_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_End_Of_CSFB_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_End_Of_CSFB_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_End_Of_CSFB_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_End_Of_CSFB_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_End_Of_CSFB_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_End_Of_CSFB_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_End_Of_CSFB_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_End_Of_CSFB_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_End_Of_CSFB_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_End_Of_CSFB_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_End_Of_CSFB_value2enum_1[] = {
+	{ 0,	11,	"end-of-CSFB" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_End_Of_CSFB_enum2value_1[] = {
+	0	/* end-of-CSFB(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_End_Of_CSFB_specs_1 = {
+	asn_MAP_RANAP_End_Of_CSFB_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_End_Of_CSFB_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_End_Of_CSFB_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_End_Of_CSFB = {
+	"RANAP_End-Of-CSFB",
+	"RANAP_End-Of-CSFB",
+	RANAP_End_Of_CSFB_free,
+	RANAP_End_Of_CSFB_print,
+	RANAP_End_Of_CSFB_constraint,
+	RANAP_End_Of_CSFB_decode_ber,
+	RANAP_End_Of_CSFB_encode_der,
+	RANAP_End_Of_CSFB_decode_xer,
+	RANAP_End_Of_CSFB_encode_xer,
+	RANAP_End_Of_CSFB_decode_uper,
+	RANAP_End_Of_CSFB_encode_uper,
+	RANAP_End_Of_CSFB_decode_aper,
+	RANAP_End_Of_CSFB_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_End_Of_CSFB_tags_1,
+	sizeof(asn_DEF_RANAP_End_Of_CSFB_tags_1)
+		/sizeof(asn_DEF_RANAP_End_Of_CSFB_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_End_Of_CSFB_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_End_Of_CSFB_tags_1)
+		/sizeof(asn_DEF_RANAP_End_Of_CSFB_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_End_Of_CSFB_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_End_Of_CSFB_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_End-Of-CSFB.h b/src/ranap/RANAP_End-Of-CSFB.h
new file mode 100644
index 0000000..b992889
--- /dev/null
+++ b/src/ranap/RANAP_End-Of-CSFB.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_End_Of_CSFB_H_
+#define	_RANAP_End_Of_CSFB_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_End_Of_CSFB {
+	RANAP_End_Of_CSFB_end_of_CSFB	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_End_Of_CSFB;
+
+/* RANAP_End-Of-CSFB */
+typedef long	 RANAP_End_Of_CSFB_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_End_Of_CSFB;
+asn_struct_free_f RANAP_End_Of_CSFB_free;
+asn_struct_print_f RANAP_End_Of_CSFB_print;
+asn_constr_check_f RANAP_End_Of_CSFB_constraint;
+ber_type_decoder_f RANAP_End_Of_CSFB_decode_ber;
+der_type_encoder_f RANAP_End_Of_CSFB_encode_der;
+xer_type_decoder_f RANAP_End_Of_CSFB_decode_xer;
+xer_type_encoder_f RANAP_End_Of_CSFB_encode_xer;
+per_type_decoder_f RANAP_End_Of_CSFB_decode_uper;
+per_type_encoder_f RANAP_End_Of_CSFB_encode_uper;
+per_type_decoder_f RANAP_End_Of_CSFB_decode_aper;
+per_type_encoder_f RANAP_End_Of_CSFB_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_End_Of_CSFB_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_EnhancedRelocationCompleteConfirm.c b/src/ranap/RANAP_EnhancedRelocationCompleteConfirm.c
new file mode 100644
index 0000000..fcdd3d3
--- /dev/null
+++ b/src/ranap/RANAP_EnhancedRelocationCompleteConfirm.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_EnhancedRelocationCompleteConfirm.h"
+
+static int
+memb_enhancedRelocationCompleteConfirm_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_enhancedRelocationCompleteConfirm_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_enhancedRelocationCompleteConfirm_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_enhancedRelocationCompleteConfirm_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_enhancedRelocationCompleteConfirm_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_enhancedRelocationCompleteConfirm_ies_specs_2 = {
+	sizeof(struct enhancedRelocationCompleteConfirm_ies),
+	offsetof(struct enhancedRelocationCompleteConfirm_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_enhancedRelocationCompleteConfirm_ies_2 = {
+	"enhancedRelocationCompleteConfirm-ies",
+	"enhancedRelocationCompleteConfirm-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_enhancedRelocationCompleteConfirm_ies_tags_2,
+	sizeof(asn_DEF_enhancedRelocationCompleteConfirm_ies_tags_2)
+		/sizeof(asn_DEF_enhancedRelocationCompleteConfirm_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_enhancedRelocationCompleteConfirm_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_enhancedRelocationCompleteConfirm_ies_tags_2)
+		/sizeof(asn_DEF_enhancedRelocationCompleteConfirm_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_enhancedRelocationCompleteConfirm_ies_constr_2,
+	asn_MBR_enhancedRelocationCompleteConfirm_ies_2,
+	1,	/* Single element */
+	&asn_SPC_enhancedRelocationCompleteConfirm_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_EnhancedRelocationCompleteConfirm_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_EnhancedRelocationCompleteConfirm, enhancedRelocationCompleteConfirm_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_enhancedRelocationCompleteConfirm_ies_2,
+		memb_enhancedRelocationCompleteConfirm_ies_constraint_1,
+		&asn_PER_memb_enhancedRelocationCompleteConfirm_ies_constr_2,
+		0,
+		"enhancedRelocationCompleteConfirm-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_EnhancedRelocationCompleteConfirm_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_EnhancedRelocationCompleteConfirm_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* enhancedRelocationCompleteConfirm-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_EnhancedRelocationCompleteConfirm_specs_1 = {
+	sizeof(struct RANAP_EnhancedRelocationCompleteConfirm),
+	offsetof(struct RANAP_EnhancedRelocationCompleteConfirm, _asn_ctx),
+	asn_MAP_RANAP_EnhancedRelocationCompleteConfirm_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_EnhancedRelocationCompleteConfirm = {
+	"RANAP_EnhancedRelocationCompleteConfirm",
+	"RANAP_EnhancedRelocationCompleteConfirm",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_EnhancedRelocationCompleteConfirm_tags_1,
+	sizeof(asn_DEF_RANAP_EnhancedRelocationCompleteConfirm_tags_1)
+		/sizeof(asn_DEF_RANAP_EnhancedRelocationCompleteConfirm_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_EnhancedRelocationCompleteConfirm_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_EnhancedRelocationCompleteConfirm_tags_1)
+		/sizeof(asn_DEF_RANAP_EnhancedRelocationCompleteConfirm_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_EnhancedRelocationCompleteConfirm_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_EnhancedRelocationCompleteConfirm_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_EnhancedRelocationCompleteConfirm.h b/src/ranap/RANAP_EnhancedRelocationCompleteConfirm.h
new file mode 100644
index 0000000..5891f03
--- /dev/null
+++ b/src/ranap/RANAP_EnhancedRelocationCompleteConfirm.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_EnhancedRelocationCompleteConfirm_H_
+#define	_RANAP_EnhancedRelocationCompleteConfirm_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_EnhancedRelocationCompleteConfirm */
+typedef struct RANAP_EnhancedRelocationCompleteConfirm {
+	struct enhancedRelocationCompleteConfirm_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} enhancedRelocationCompleteConfirm_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_EnhancedRelocationCompleteConfirm_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_EnhancedRelocationCompleteConfirm;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_EnhancedRelocationCompleteConfirm_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_EnhancedRelocationCompleteFailure.c b/src/ranap/RANAP_EnhancedRelocationCompleteFailure.c
new file mode 100644
index 0000000..b50b0bf
--- /dev/null
+++ b/src/ranap/RANAP_EnhancedRelocationCompleteFailure.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_EnhancedRelocationCompleteFailure.h"
+
+static int
+memb_enhancedRelocationCompleteFailure_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_enhancedRelocationCompleteFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_enhancedRelocationCompleteFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_enhancedRelocationCompleteFailure_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_enhancedRelocationCompleteFailure_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_enhancedRelocationCompleteFailure_ies_specs_2 = {
+	sizeof(struct enhancedRelocationCompleteFailure_ies),
+	offsetof(struct enhancedRelocationCompleteFailure_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_enhancedRelocationCompleteFailure_ies_2 = {
+	"enhancedRelocationCompleteFailure-ies",
+	"enhancedRelocationCompleteFailure-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_enhancedRelocationCompleteFailure_ies_tags_2,
+	sizeof(asn_DEF_enhancedRelocationCompleteFailure_ies_tags_2)
+		/sizeof(asn_DEF_enhancedRelocationCompleteFailure_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_enhancedRelocationCompleteFailure_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_enhancedRelocationCompleteFailure_ies_tags_2)
+		/sizeof(asn_DEF_enhancedRelocationCompleteFailure_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_enhancedRelocationCompleteFailure_ies_constr_2,
+	asn_MBR_enhancedRelocationCompleteFailure_ies_2,
+	1,	/* Single element */
+	&asn_SPC_enhancedRelocationCompleteFailure_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_EnhancedRelocationCompleteFailure_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_EnhancedRelocationCompleteFailure, enhancedRelocationCompleteFailure_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_enhancedRelocationCompleteFailure_ies_2,
+		memb_enhancedRelocationCompleteFailure_ies_constraint_1,
+		&asn_PER_memb_enhancedRelocationCompleteFailure_ies_constr_2,
+		0,
+		"enhancedRelocationCompleteFailure-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_EnhancedRelocationCompleteFailure_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_EnhancedRelocationCompleteFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* enhancedRelocationCompleteFailure-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_EnhancedRelocationCompleteFailure_specs_1 = {
+	sizeof(struct RANAP_EnhancedRelocationCompleteFailure),
+	offsetof(struct RANAP_EnhancedRelocationCompleteFailure, _asn_ctx),
+	asn_MAP_RANAP_EnhancedRelocationCompleteFailure_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_EnhancedRelocationCompleteFailure = {
+	"RANAP_EnhancedRelocationCompleteFailure",
+	"RANAP_EnhancedRelocationCompleteFailure",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_EnhancedRelocationCompleteFailure_tags_1,
+	sizeof(asn_DEF_RANAP_EnhancedRelocationCompleteFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_EnhancedRelocationCompleteFailure_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_EnhancedRelocationCompleteFailure_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_EnhancedRelocationCompleteFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_EnhancedRelocationCompleteFailure_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_EnhancedRelocationCompleteFailure_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_EnhancedRelocationCompleteFailure_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_EnhancedRelocationCompleteFailure.h b/src/ranap/RANAP_EnhancedRelocationCompleteFailure.h
new file mode 100644
index 0000000..0d055e2
--- /dev/null
+++ b/src/ranap/RANAP_EnhancedRelocationCompleteFailure.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_EnhancedRelocationCompleteFailure_H_
+#define	_RANAP_EnhancedRelocationCompleteFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_EnhancedRelocationCompleteFailure */
+typedef struct RANAP_EnhancedRelocationCompleteFailure {
+	struct enhancedRelocationCompleteFailure_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} enhancedRelocationCompleteFailure_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_EnhancedRelocationCompleteFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_EnhancedRelocationCompleteFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_EnhancedRelocationCompleteFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_EnhancedRelocationCompleteRequest.c b/src/ranap/RANAP_EnhancedRelocationCompleteRequest.c
new file mode 100644
index 0000000..a7addd4
--- /dev/null
+++ b/src/ranap/RANAP_EnhancedRelocationCompleteRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_EnhancedRelocationCompleteRequest.h"
+
+static int
+memb_enhancedRelocationCompleteRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_enhancedRelocationCompleteRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_enhancedRelocationCompleteRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_enhancedRelocationCompleteRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_enhancedRelocationCompleteRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_enhancedRelocationCompleteRequest_ies_specs_2 = {
+	sizeof(struct enhancedRelocationCompleteRequest_ies),
+	offsetof(struct enhancedRelocationCompleteRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_enhancedRelocationCompleteRequest_ies_2 = {
+	"enhancedRelocationCompleteRequest-ies",
+	"enhancedRelocationCompleteRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_enhancedRelocationCompleteRequest_ies_tags_2,
+	sizeof(asn_DEF_enhancedRelocationCompleteRequest_ies_tags_2)
+		/sizeof(asn_DEF_enhancedRelocationCompleteRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_enhancedRelocationCompleteRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_enhancedRelocationCompleteRequest_ies_tags_2)
+		/sizeof(asn_DEF_enhancedRelocationCompleteRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_enhancedRelocationCompleteRequest_ies_constr_2,
+	asn_MBR_enhancedRelocationCompleteRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_enhancedRelocationCompleteRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_EnhancedRelocationCompleteRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_EnhancedRelocationCompleteRequest, enhancedRelocationCompleteRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_enhancedRelocationCompleteRequest_ies_2,
+		memb_enhancedRelocationCompleteRequest_ies_constraint_1,
+		&asn_PER_memb_enhancedRelocationCompleteRequest_ies_constr_2,
+		0,
+		"enhancedRelocationCompleteRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_EnhancedRelocationCompleteRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_EnhancedRelocationCompleteRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* enhancedRelocationCompleteRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_EnhancedRelocationCompleteRequest_specs_1 = {
+	sizeof(struct RANAP_EnhancedRelocationCompleteRequest),
+	offsetof(struct RANAP_EnhancedRelocationCompleteRequest, _asn_ctx),
+	asn_MAP_RANAP_EnhancedRelocationCompleteRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_EnhancedRelocationCompleteRequest = {
+	"RANAP_EnhancedRelocationCompleteRequest",
+	"RANAP_EnhancedRelocationCompleteRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_EnhancedRelocationCompleteRequest_tags_1,
+	sizeof(asn_DEF_RANAP_EnhancedRelocationCompleteRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_EnhancedRelocationCompleteRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_EnhancedRelocationCompleteRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_EnhancedRelocationCompleteRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_EnhancedRelocationCompleteRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_EnhancedRelocationCompleteRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_EnhancedRelocationCompleteRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_EnhancedRelocationCompleteRequest.h b/src/ranap/RANAP_EnhancedRelocationCompleteRequest.h
new file mode 100644
index 0000000..ba398bf
--- /dev/null
+++ b/src/ranap/RANAP_EnhancedRelocationCompleteRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_EnhancedRelocationCompleteRequest_H_
+#define	_RANAP_EnhancedRelocationCompleteRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_EnhancedRelocationCompleteRequest */
+typedef struct RANAP_EnhancedRelocationCompleteRequest {
+	struct enhancedRelocationCompleteRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} enhancedRelocationCompleteRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_EnhancedRelocationCompleteRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_EnhancedRelocationCompleteRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_EnhancedRelocationCompleteRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_EnhancedRelocationCompleteResponse.c b/src/ranap/RANAP_EnhancedRelocationCompleteResponse.c
new file mode 100644
index 0000000..6d5e63b
--- /dev/null
+++ b/src/ranap/RANAP_EnhancedRelocationCompleteResponse.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_EnhancedRelocationCompleteResponse.h"
+
+static int
+memb_enhancedRelocationCompleteResponse_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_enhancedRelocationCompleteResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_enhancedRelocationCompleteResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_enhancedRelocationCompleteResponse_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_enhancedRelocationCompleteResponse_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_enhancedRelocationCompleteResponse_ies_specs_2 = {
+	sizeof(struct enhancedRelocationCompleteResponse_ies),
+	offsetof(struct enhancedRelocationCompleteResponse_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_enhancedRelocationCompleteResponse_ies_2 = {
+	"enhancedRelocationCompleteResponse-ies",
+	"enhancedRelocationCompleteResponse-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_enhancedRelocationCompleteResponse_ies_tags_2,
+	sizeof(asn_DEF_enhancedRelocationCompleteResponse_ies_tags_2)
+		/sizeof(asn_DEF_enhancedRelocationCompleteResponse_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_enhancedRelocationCompleteResponse_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_enhancedRelocationCompleteResponse_ies_tags_2)
+		/sizeof(asn_DEF_enhancedRelocationCompleteResponse_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_enhancedRelocationCompleteResponse_ies_constr_2,
+	asn_MBR_enhancedRelocationCompleteResponse_ies_2,
+	1,	/* Single element */
+	&asn_SPC_enhancedRelocationCompleteResponse_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_EnhancedRelocationCompleteResponse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_EnhancedRelocationCompleteResponse, enhancedRelocationCompleteResponse_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_enhancedRelocationCompleteResponse_ies_2,
+		memb_enhancedRelocationCompleteResponse_ies_constraint_1,
+		&asn_PER_memb_enhancedRelocationCompleteResponse_ies_constr_2,
+		0,
+		"enhancedRelocationCompleteResponse-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_EnhancedRelocationCompleteResponse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_EnhancedRelocationCompleteResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* enhancedRelocationCompleteResponse-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_EnhancedRelocationCompleteResponse_specs_1 = {
+	sizeof(struct RANAP_EnhancedRelocationCompleteResponse),
+	offsetof(struct RANAP_EnhancedRelocationCompleteResponse, _asn_ctx),
+	asn_MAP_RANAP_EnhancedRelocationCompleteResponse_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_EnhancedRelocationCompleteResponse = {
+	"RANAP_EnhancedRelocationCompleteResponse",
+	"RANAP_EnhancedRelocationCompleteResponse",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_EnhancedRelocationCompleteResponse_tags_1,
+	sizeof(asn_DEF_RANAP_EnhancedRelocationCompleteResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_EnhancedRelocationCompleteResponse_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_EnhancedRelocationCompleteResponse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_EnhancedRelocationCompleteResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_EnhancedRelocationCompleteResponse_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_EnhancedRelocationCompleteResponse_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_EnhancedRelocationCompleteResponse_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_EnhancedRelocationCompleteResponse.h b/src/ranap/RANAP_EnhancedRelocationCompleteResponse.h
new file mode 100644
index 0000000..7691d79
--- /dev/null
+++ b/src/ranap/RANAP_EnhancedRelocationCompleteResponse.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_EnhancedRelocationCompleteResponse_H_
+#define	_RANAP_EnhancedRelocationCompleteResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_EnhancedRelocationCompleteResponse */
+typedef struct RANAP_EnhancedRelocationCompleteResponse {
+	struct enhancedRelocationCompleteResponse_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} enhancedRelocationCompleteResponse_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_EnhancedRelocationCompleteResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_EnhancedRelocationCompleteResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_EnhancedRelocationCompleteResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_EquipmentsToBeTraced.c b/src/ranap/RANAP_EquipmentsToBeTraced.c
new file mode 100644
index 0000000..c22da5d
--- /dev/null
+++ b/src/ranap/RANAP_EquipmentsToBeTraced.c
@@ -0,0 +1,92 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_EquipmentsToBeTraced.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_EquipmentsToBeTraced_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  3l }	/* (0..3,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_EquipmentsToBeTraced_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_EquipmentsToBeTraced, choice.iMEIlist),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IMEIList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iMEIlist"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_EquipmentsToBeTraced, choice.iMEISVlist),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IMEISVList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iMEISVlist"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_EquipmentsToBeTraced, choice.iMEIgroup),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IMEIGroup,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iMEIgroup"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_EquipmentsToBeTraced, choice.iMEISVgroup),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IMEISVGroup,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iMEISVgroup"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_EquipmentsToBeTraced_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iMEIlist */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iMEISVlist */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* iMEIgroup */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iMEISVgroup */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_EquipmentsToBeTraced_specs_1 = {
+	sizeof(struct RANAP_EquipmentsToBeTraced),
+	offsetof(struct RANAP_EquipmentsToBeTraced, _asn_ctx),
+	offsetof(struct RANAP_EquipmentsToBeTraced, present),
+	sizeof(((struct RANAP_EquipmentsToBeTraced *)0)->present),
+	asn_MAP_RANAP_EquipmentsToBeTraced_tag2el_1,
+	4,	/* Count of tags in the map */
+	0,
+	4	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_EquipmentsToBeTraced = {
+	"RANAP_EquipmentsToBeTraced",
+	"RANAP_EquipmentsToBeTraced",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_EquipmentsToBeTraced_constr_1,
+	asn_MBR_RANAP_EquipmentsToBeTraced_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_EquipmentsToBeTraced_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_EquipmentsToBeTraced.h b/src/ranap/RANAP_EquipmentsToBeTraced.h
new file mode 100644
index 0000000..01478db
--- /dev/null
+++ b/src/ranap/RANAP_EquipmentsToBeTraced.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_EquipmentsToBeTraced_H_
+#define	_RANAP_EquipmentsToBeTraced_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IMEIList.h"
+#include "RANAP_IMEISVList.h"
+#include "RANAP_IMEIGroup.h"
+#include "RANAP_IMEISVGroup.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_EquipmentsToBeTraced_PR {
+	RANAP_EquipmentsToBeTraced_PR_NOTHING,	/* No components present */
+	RANAP_EquipmentsToBeTraced_PR_iMEIlist,
+	RANAP_EquipmentsToBeTraced_PR_iMEISVlist,
+	RANAP_EquipmentsToBeTraced_PR_iMEIgroup,
+	RANAP_EquipmentsToBeTraced_PR_iMEISVgroup,
+	/* Extensions may appear below */
+	
+} RANAP_EquipmentsToBeTraced_PR;
+
+/* RANAP_EquipmentsToBeTraced */
+typedef struct RANAP_EquipmentsToBeTraced {
+	RANAP_EquipmentsToBeTraced_PR present;
+	union RANAP_EquipmentsToBeTraced_u {
+		RANAP_IMEIList_t	 iMEIlist;
+		RANAP_IMEISVList_t	 iMEISVlist;
+		RANAP_IMEIGroup_t	 iMEIgroup;
+		RANAP_IMEISVGroup_t	 iMEISVgroup;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_EquipmentsToBeTraced_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_EquipmentsToBeTraced;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_EquipmentsToBeTraced_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ErrorIndication.c b/src/ranap/RANAP_ErrorIndication.c
new file mode 100644
index 0000000..6cc3fbe
--- /dev/null
+++ b/src/ranap/RANAP_ErrorIndication.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_ErrorIndication.h"
+
+static int
+memb_errorIndication_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_errorIndication_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_errorIndication_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_errorIndication_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_errorIndication_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_errorIndication_ies_specs_2 = {
+	sizeof(struct errorIndication_ies),
+	offsetof(struct errorIndication_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_errorIndication_ies_2 = {
+	"errorIndication-ies",
+	"errorIndication-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_errorIndication_ies_tags_2,
+	sizeof(asn_DEF_errorIndication_ies_tags_2)
+		/sizeof(asn_DEF_errorIndication_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_errorIndication_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_errorIndication_ies_tags_2)
+		/sizeof(asn_DEF_errorIndication_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_errorIndication_ies_constr_2,
+	asn_MBR_errorIndication_ies_2,
+	1,	/* Single element */
+	&asn_SPC_errorIndication_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_ErrorIndication_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_ErrorIndication, errorIndication_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_errorIndication_ies_2,
+		memb_errorIndication_ies_constraint_1,
+		&asn_PER_memb_errorIndication_ies_constr_2,
+		0,
+		"errorIndication-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ErrorIndication_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_ErrorIndication_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* errorIndication-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_ErrorIndication_specs_1 = {
+	sizeof(struct RANAP_ErrorIndication),
+	offsetof(struct RANAP_ErrorIndication, _asn_ctx),
+	asn_MAP_RANAP_ErrorIndication_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ErrorIndication = {
+	"RANAP_ErrorIndication",
+	"RANAP_ErrorIndication",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ErrorIndication_tags_1,
+	sizeof(asn_DEF_RANAP_ErrorIndication_tags_1)
+		/sizeof(asn_DEF_RANAP_ErrorIndication_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ErrorIndication_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ErrorIndication_tags_1)
+		/sizeof(asn_DEF_RANAP_ErrorIndication_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_ErrorIndication_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_ErrorIndication_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ErrorIndication.h b/src/ranap/RANAP_ErrorIndication.h
new file mode 100644
index 0000000..ea84d58
--- /dev/null
+++ b/src/ranap/RANAP_ErrorIndication.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_ErrorIndication_H_
+#define	_RANAP_ErrorIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ErrorIndication */
+typedef struct RANAP_ErrorIndication {
+	struct errorIndication_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} errorIndication_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_ErrorIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ErrorIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ErrorIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Event.c b/src/ranap/RANAP_Event.c
new file mode 100644
index 0000000..17b6fcf
--- /dev/null
+++ b/src/ranap/RANAP_Event.c
@@ -0,0 +1,175 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Event.h"
+
+int
+RANAP_Event_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Event_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_Event_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Event_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Event_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Event_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Event_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Event_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Event_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Event_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Event_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Event_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Event_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Event_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Event_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Event_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Event_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Event_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Event_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Event_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Event_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Event_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Event_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  2l }	/* (0..2,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_Event_value2enum_1[] = {
+	{ 0,	27,	"stop-change-of-service-area" },
+	{ 1,	6,	"direct" },
+	{ 2,	21,	"change-of-servicearea" },
+	{ 3,	11,	"stop-direct" },
+	{ 4,	8,	"periodic" },
+	{ 5,	13,	"stop-periodic" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_Event_enum2value_1[] = {
+	2,	/* change-of-servicearea(2) */
+	1,	/* direct(1) */
+	4,	/* periodic(4) */
+	0,	/* stop-change-of-service-area(0) */
+	3,	/* stop-direct(3) */
+	5	/* stop-periodic(5) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_Event_specs_1 = {
+	asn_MAP_RANAP_Event_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_Event_enum2value_1,	/* N => "tag"; sorted by N */
+	6,	/* Number of elements in the maps */
+	4,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Event_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Event = {
+	"RANAP_Event",
+	"RANAP_Event",
+	RANAP_Event_free,
+	RANAP_Event_print,
+	RANAP_Event_constraint,
+	RANAP_Event_decode_ber,
+	RANAP_Event_encode_der,
+	RANAP_Event_decode_xer,
+	RANAP_Event_encode_xer,
+	RANAP_Event_decode_uper,
+	RANAP_Event_encode_uper,
+	RANAP_Event_decode_aper,
+	RANAP_Event_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Event_tags_1,
+	sizeof(asn_DEF_RANAP_Event_tags_1)
+		/sizeof(asn_DEF_RANAP_Event_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Event_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Event_tags_1)
+		/sizeof(asn_DEF_RANAP_Event_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Event_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_Event_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Event.h b/src/ranap/RANAP_Event.h
new file mode 100644
index 0000000..a3a0e67
--- /dev/null
+++ b/src/ranap/RANAP_Event.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Event_H_
+#define	_RANAP_Event_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_Event {
+	RANAP_Event_stop_change_of_service_area	= 0,
+	RANAP_Event_direct	= 1,
+	RANAP_Event_change_of_servicearea	= 2,
+	/*
+	 * Enumeration is extensible
+	 */
+	RANAP_Event_stop_direct	= 3,
+	RANAP_Event_periodic	= 4,
+	RANAP_Event_stop_periodic	= 5
+} e_RANAP_Event;
+
+/* RANAP_Event */
+typedef long	 RANAP_Event_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Event;
+asn_struct_free_f RANAP_Event_free;
+asn_struct_print_f RANAP_Event_print;
+asn_constr_check_f RANAP_Event_constraint;
+ber_type_decoder_f RANAP_Event_decode_ber;
+der_type_encoder_f RANAP_Event_encode_der;
+xer_type_decoder_f RANAP_Event_decode_xer;
+xer_type_encoder_f RANAP_Event_encode_xer;
+per_type_decoder_f RANAP_Event_decode_uper;
+per_type_encoder_f RANAP_Event_encode_uper;
+per_type_decoder_f RANAP_Event_decode_aper;
+per_type_encoder_f RANAP_Event_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Event_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Event1F-Parameters.c b/src/ranap/RANAP_Event1F-Parameters.c
new file mode 100644
index 0000000..4340aa8
--- /dev/null
+++ b/src/ranap/RANAP_Event1F-Parameters.c
@@ -0,0 +1,101 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Event1F-Parameters.h"
+
+static int
+memb_threshold_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= -120ull && value <= 165l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_threshold_constr_3 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 9,  9, -120ull,  165l }	/* (-120..165) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Event1F_Parameters_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Event1F_Parameters, measurementQuantity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_MeasurementQuantity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"measurementQuantity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Event1F_Parameters, threshold),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_threshold_constraint_1,
+		&asn_PER_memb_threshold_constr_3,
+		0,
+		"threshold"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Event1F_Parameters_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Event1F_Parameters_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measurementQuantity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* threshold */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Event1F_Parameters_specs_1 = {
+	sizeof(struct RANAP_Event1F_Parameters),
+	offsetof(struct RANAP_Event1F_Parameters, _asn_ctx),
+	asn_MAP_RANAP_Event1F_Parameters_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Event1F_Parameters = {
+	"RANAP_Event1F-Parameters",
+	"RANAP_Event1F-Parameters",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Event1F_Parameters_tags_1,
+	sizeof(asn_DEF_RANAP_Event1F_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_Event1F_Parameters_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Event1F_Parameters_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Event1F_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_Event1F_Parameters_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Event1F_Parameters_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_Event1F_Parameters_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Event1F-Parameters.h b/src/ranap/RANAP_Event1F-Parameters.h
new file mode 100644
index 0000000..6fc7309
--- /dev/null
+++ b/src/ranap/RANAP_Event1F-Parameters.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Event1F_Parameters_H_
+#define	_RANAP_Event1F_Parameters_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_MeasurementQuantity.h"
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Event1F-Parameters */
+typedef struct RANAP_Event1F_Parameters {
+	RANAP_MeasurementQuantity_t	 measurementQuantity;
+	long	 threshold;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Event1F_Parameters_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Event1F_Parameters;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Event1F_Parameters_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Event1I-Parameters.c b/src/ranap/RANAP_Event1I-Parameters.c
new file mode 100644
index 0000000..16230dd
--- /dev/null
+++ b/src/ranap/RANAP_Event1I-Parameters.c
@@ -0,0 +1,91 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Event1I-Parameters.h"
+
+static int
+memb_threshold_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= -120ull && value <= -25ull)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_threshold_constr_2 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7, -120ull, -25ull }	/* (-120..-25) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Event1I_Parameters_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Event1I_Parameters, threshold),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_threshold_constraint_1,
+		&asn_PER_memb_threshold_constr_2,
+		0,
+		"threshold"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Event1I_Parameters_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Event1I_Parameters_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* threshold */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Event1I_Parameters_specs_1 = {
+	sizeof(struct RANAP_Event1I_Parameters),
+	offsetof(struct RANAP_Event1I_Parameters, _asn_ctx),
+	asn_MAP_RANAP_Event1I_Parameters_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Event1I_Parameters = {
+	"RANAP_Event1I-Parameters",
+	"RANAP_Event1I-Parameters",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Event1I_Parameters_tags_1,
+	sizeof(asn_DEF_RANAP_Event1I_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_Event1I_Parameters_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Event1I_Parameters_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Event1I_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_Event1I_Parameters_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Event1I_Parameters_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_Event1I_Parameters_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Event1I-Parameters.h b/src/ranap/RANAP_Event1I-Parameters.h
new file mode 100644
index 0000000..ded464f
--- /dev/null
+++ b/src/ranap/RANAP_Event1I-Parameters.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Event1I_Parameters_H_
+#define	_RANAP_Event1I_Parameters_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Event1I-Parameters */
+typedef struct RANAP_Event1I_Parameters {
+	long	 threshold;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Event1I_Parameters_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Event1I_Parameters;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Event1I_Parameters_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ExtendedGuaranteedBitrate.c b/src/ranap/RANAP_ExtendedGuaranteedBitrate.c
new file mode 100644
index 0000000..0630086
--- /dev/null
+++ b/src/ranap/RANAP_ExtendedGuaranteedBitrate.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ExtendedGuaranteedBitrate.h"
+
+int
+RANAP_ExtendedGuaranteedBitrate_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 16000001l && value <= 256000000l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ExtendedGuaranteedBitrate_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_ExtendedGuaranteedBitrate_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ExtendedGuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ExtendedGuaranteedBitrate_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ExtendedGuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ExtendedGuaranteedBitrate_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ExtendedGuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ExtendedGuaranteedBitrate_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ExtendedGuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ExtendedGuaranteedBitrate_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ExtendedGuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ExtendedGuaranteedBitrate_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ExtendedGuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ExtendedGuaranteedBitrate_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ExtendedGuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ExtendedGuaranteedBitrate_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ExtendedGuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ExtendedGuaranteedBitrate_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ExtendedGuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ExtendedGuaranteedBitrate_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ExtendedGuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_ExtendedGuaranteedBitrate_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 28, -1,  16000001l,  256000000l }	/* (16000001..256000000) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ExtendedGuaranteedBitrate_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ExtendedGuaranteedBitrate = {
+	"RANAP_ExtendedGuaranteedBitrate",
+	"RANAP_ExtendedGuaranteedBitrate",
+	RANAP_ExtendedGuaranteedBitrate_free,
+	RANAP_ExtendedGuaranteedBitrate_print,
+	RANAP_ExtendedGuaranteedBitrate_constraint,
+	RANAP_ExtendedGuaranteedBitrate_decode_ber,
+	RANAP_ExtendedGuaranteedBitrate_encode_der,
+	RANAP_ExtendedGuaranteedBitrate_decode_xer,
+	RANAP_ExtendedGuaranteedBitrate_encode_xer,
+	RANAP_ExtendedGuaranteedBitrate_decode_uper,
+	RANAP_ExtendedGuaranteedBitrate_encode_uper,
+	RANAP_ExtendedGuaranteedBitrate_decode_aper,
+	RANAP_ExtendedGuaranteedBitrate_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ExtendedGuaranteedBitrate_tags_1,
+	sizeof(asn_DEF_RANAP_ExtendedGuaranteedBitrate_tags_1)
+		/sizeof(asn_DEF_RANAP_ExtendedGuaranteedBitrate_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ExtendedGuaranteedBitrate_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ExtendedGuaranteedBitrate_tags_1)
+		/sizeof(asn_DEF_RANAP_ExtendedGuaranteedBitrate_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_ExtendedGuaranteedBitrate_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_ExtendedGuaranteedBitrate.h b/src/ranap/RANAP_ExtendedGuaranteedBitrate.h
new file mode 100644
index 0000000..404cecb
--- /dev/null
+++ b/src/ranap/RANAP_ExtendedGuaranteedBitrate.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ExtendedGuaranteedBitrate_H_
+#define	_RANAP_ExtendedGuaranteedBitrate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ExtendedGuaranteedBitrate */
+typedef long	 RANAP_ExtendedGuaranteedBitrate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ExtendedGuaranteedBitrate;
+asn_struct_free_f RANAP_ExtendedGuaranteedBitrate_free;
+asn_struct_print_f RANAP_ExtendedGuaranteedBitrate_print;
+asn_constr_check_f RANAP_ExtendedGuaranteedBitrate_constraint;
+ber_type_decoder_f RANAP_ExtendedGuaranteedBitrate_decode_ber;
+der_type_encoder_f RANAP_ExtendedGuaranteedBitrate_encode_der;
+xer_type_decoder_f RANAP_ExtendedGuaranteedBitrate_decode_xer;
+xer_type_encoder_f RANAP_ExtendedGuaranteedBitrate_encode_xer;
+per_type_decoder_f RANAP_ExtendedGuaranteedBitrate_decode_uper;
+per_type_encoder_f RANAP_ExtendedGuaranteedBitrate_encode_uper;
+per_type_decoder_f RANAP_ExtendedGuaranteedBitrate_decode_aper;
+per_type_encoder_f RANAP_ExtendedGuaranteedBitrate_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ExtendedGuaranteedBitrate_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ExtendedMaxBitrate.c b/src/ranap/RANAP_ExtendedMaxBitrate.c
new file mode 100644
index 0000000..3c2532d
--- /dev/null
+++ b/src/ranap/RANAP_ExtendedMaxBitrate.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ExtendedMaxBitrate.h"
+
+int
+RANAP_ExtendedMaxBitrate_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 16000001l && value <= 256000000l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ExtendedMaxBitrate_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_ExtendedMaxBitrate_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ExtendedMaxBitrate_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ExtendedMaxBitrate_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ExtendedMaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ExtendedMaxBitrate_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ExtendedMaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ExtendedMaxBitrate_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ExtendedMaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ExtendedMaxBitrate_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ExtendedMaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ExtendedMaxBitrate_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ExtendedMaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ExtendedMaxBitrate_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ExtendedMaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ExtendedMaxBitrate_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ExtendedMaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ExtendedMaxBitrate_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ExtendedMaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ExtendedMaxBitrate_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ExtendedMaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_ExtendedMaxBitrate_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 28, -1,  16000001l,  256000000l }	/* (16000001..256000000) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ExtendedMaxBitrate_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ExtendedMaxBitrate = {
+	"RANAP_ExtendedMaxBitrate",
+	"RANAP_ExtendedMaxBitrate",
+	RANAP_ExtendedMaxBitrate_free,
+	RANAP_ExtendedMaxBitrate_print,
+	RANAP_ExtendedMaxBitrate_constraint,
+	RANAP_ExtendedMaxBitrate_decode_ber,
+	RANAP_ExtendedMaxBitrate_encode_der,
+	RANAP_ExtendedMaxBitrate_decode_xer,
+	RANAP_ExtendedMaxBitrate_encode_xer,
+	RANAP_ExtendedMaxBitrate_decode_uper,
+	RANAP_ExtendedMaxBitrate_encode_uper,
+	RANAP_ExtendedMaxBitrate_decode_aper,
+	RANAP_ExtendedMaxBitrate_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ExtendedMaxBitrate_tags_1,
+	sizeof(asn_DEF_RANAP_ExtendedMaxBitrate_tags_1)
+		/sizeof(asn_DEF_RANAP_ExtendedMaxBitrate_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ExtendedMaxBitrate_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ExtendedMaxBitrate_tags_1)
+		/sizeof(asn_DEF_RANAP_ExtendedMaxBitrate_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_ExtendedMaxBitrate_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_ExtendedMaxBitrate.h b/src/ranap/RANAP_ExtendedMaxBitrate.h
new file mode 100644
index 0000000..07af50d
--- /dev/null
+++ b/src/ranap/RANAP_ExtendedMaxBitrate.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ExtendedMaxBitrate_H_
+#define	_RANAP_ExtendedMaxBitrate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ExtendedMaxBitrate */
+typedef long	 RANAP_ExtendedMaxBitrate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ExtendedMaxBitrate;
+asn_struct_free_f RANAP_ExtendedMaxBitrate_free;
+asn_struct_print_f RANAP_ExtendedMaxBitrate_print;
+asn_constr_check_f RANAP_ExtendedMaxBitrate_constraint;
+ber_type_decoder_f RANAP_ExtendedMaxBitrate_decode_ber;
+der_type_encoder_f RANAP_ExtendedMaxBitrate_encode_der;
+xer_type_decoder_f RANAP_ExtendedMaxBitrate_decode_xer;
+xer_type_encoder_f RANAP_ExtendedMaxBitrate_encode_xer;
+per_type_decoder_f RANAP_ExtendedMaxBitrate_decode_uper;
+per_type_encoder_f RANAP_ExtendedMaxBitrate_encode_uper;
+per_type_decoder_f RANAP_ExtendedMaxBitrate_decode_aper;
+per_type_encoder_f RANAP_ExtendedMaxBitrate_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ExtendedMaxBitrate_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ExtendedRNC-ID.c b/src/ranap/RANAP_ExtendedRNC-ID.c
new file mode 100644
index 0000000..4e56247
--- /dev/null
+++ b/src/ranap/RANAP_ExtendedRNC-ID.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ExtendedRNC-ID.h"
+
+int
+RANAP_ExtendedRNC_ID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 4096l && value <= 65535l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ExtendedRNC_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_ExtendedRNC_ID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ExtendedRNC_ID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ExtendedRNC_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ExtendedRNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ExtendedRNC_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ExtendedRNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ExtendedRNC_ID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ExtendedRNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ExtendedRNC_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ExtendedRNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ExtendedRNC_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ExtendedRNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ExtendedRNC_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ExtendedRNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ExtendedRNC_ID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ExtendedRNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ExtendedRNC_ID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ExtendedRNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ExtendedRNC_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ExtendedRNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_ExtendedRNC_ID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  4096l,  65535l }	/* (4096..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ExtendedRNC_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ExtendedRNC_ID = {
+	"RANAP_ExtendedRNC-ID",
+	"RANAP_ExtendedRNC-ID",
+	RANAP_ExtendedRNC_ID_free,
+	RANAP_ExtendedRNC_ID_print,
+	RANAP_ExtendedRNC_ID_constraint,
+	RANAP_ExtendedRNC_ID_decode_ber,
+	RANAP_ExtendedRNC_ID_encode_der,
+	RANAP_ExtendedRNC_ID_decode_xer,
+	RANAP_ExtendedRNC_ID_encode_xer,
+	RANAP_ExtendedRNC_ID_decode_uper,
+	RANAP_ExtendedRNC_ID_encode_uper,
+	RANAP_ExtendedRNC_ID_decode_aper,
+	RANAP_ExtendedRNC_ID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ExtendedRNC_ID_tags_1,
+	sizeof(asn_DEF_RANAP_ExtendedRNC_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_ExtendedRNC_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ExtendedRNC_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ExtendedRNC_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_ExtendedRNC_ID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_ExtendedRNC_ID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_ExtendedRNC-ID.h b/src/ranap/RANAP_ExtendedRNC-ID.h
new file mode 100644
index 0000000..c76a124
--- /dev/null
+++ b/src/ranap/RANAP_ExtendedRNC-ID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ExtendedRNC_ID_H_
+#define	_RANAP_ExtendedRNC_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ExtendedRNC-ID */
+typedef long	 RANAP_ExtendedRNC_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ExtendedRNC_ID;
+asn_struct_free_f RANAP_ExtendedRNC_ID_free;
+asn_struct_print_f RANAP_ExtendedRNC_ID_print;
+asn_constr_check_f RANAP_ExtendedRNC_ID_constraint;
+ber_type_decoder_f RANAP_ExtendedRNC_ID_decode_ber;
+der_type_encoder_f RANAP_ExtendedRNC_ID_encode_der;
+xer_type_decoder_f RANAP_ExtendedRNC_ID_decode_xer;
+xer_type_encoder_f RANAP_ExtendedRNC_ID_encode_xer;
+per_type_decoder_f RANAP_ExtendedRNC_ID_decode_uper;
+per_type_encoder_f RANAP_ExtendedRNC_ID_encode_uper;
+per_type_decoder_f RANAP_ExtendedRNC_ID_decode_aper;
+per_type_encoder_f RANAP_ExtendedRNC_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ExtendedRNC_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ForwardSRNS-Context.c b/src/ranap/RANAP_ForwardSRNS-Context.c
new file mode 100644
index 0000000..3948c53
--- /dev/null
+++ b/src/ranap/RANAP_ForwardSRNS-Context.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_ForwardSRNS-Context.h"
+
+static int
+memb_forwardSRNS_Context_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_forwardSRNS_Context_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_forwardSRNS_Context_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_forwardSRNS_Context_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_forwardSRNS_Context_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_forwardSRNS_Context_ies_specs_2 = {
+	sizeof(struct forwardSRNS_Context_ies),
+	offsetof(struct forwardSRNS_Context_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_forwardSRNS_Context_ies_2 = {
+	"forwardSRNS-Context-ies",
+	"forwardSRNS-Context-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_forwardSRNS_Context_ies_tags_2,
+	sizeof(asn_DEF_forwardSRNS_Context_ies_tags_2)
+		/sizeof(asn_DEF_forwardSRNS_Context_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_forwardSRNS_Context_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_forwardSRNS_Context_ies_tags_2)
+		/sizeof(asn_DEF_forwardSRNS_Context_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_forwardSRNS_Context_ies_constr_2,
+	asn_MBR_forwardSRNS_Context_ies_2,
+	1,	/* Single element */
+	&asn_SPC_forwardSRNS_Context_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_ForwardSRNS_Context_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_ForwardSRNS_Context, forwardSRNS_Context_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_forwardSRNS_Context_ies_2,
+		memb_forwardSRNS_Context_ies_constraint_1,
+		&asn_PER_memb_forwardSRNS_Context_ies_constr_2,
+		0,
+		"forwardSRNS-Context-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ForwardSRNS_Context_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_ForwardSRNS_Context_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* forwardSRNS-Context-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_ForwardSRNS_Context_specs_1 = {
+	sizeof(struct RANAP_ForwardSRNS_Context),
+	offsetof(struct RANAP_ForwardSRNS_Context, _asn_ctx),
+	asn_MAP_RANAP_ForwardSRNS_Context_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ForwardSRNS_Context = {
+	"RANAP_ForwardSRNS-Context",
+	"RANAP_ForwardSRNS-Context",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ForwardSRNS_Context_tags_1,
+	sizeof(asn_DEF_RANAP_ForwardSRNS_Context_tags_1)
+		/sizeof(asn_DEF_RANAP_ForwardSRNS_Context_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ForwardSRNS_Context_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ForwardSRNS_Context_tags_1)
+		/sizeof(asn_DEF_RANAP_ForwardSRNS_Context_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_ForwardSRNS_Context_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_ForwardSRNS_Context_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ForwardSRNS-Context.h b/src/ranap/RANAP_ForwardSRNS-Context.h
new file mode 100644
index 0000000..1d78583
--- /dev/null
+++ b/src/ranap/RANAP_ForwardSRNS-Context.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_ForwardSRNS_Context_H_
+#define	_RANAP_ForwardSRNS_Context_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ForwardSRNS-Context */
+typedef struct RANAP_ForwardSRNS_Context {
+	struct forwardSRNS_Context_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} forwardSRNS_Context_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_ForwardSRNS_Context_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ForwardSRNS_Context;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ForwardSRNS_Context_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ForwardingIndication.c b/src/ranap/RANAP_ForwardingIndication.c
new file mode 100644
index 0000000..69a3c47
--- /dev/null
+++ b/src/ranap/RANAP_ForwardingIndication.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ForwardingIndication.h"
+
+int
+RANAP_ForwardingIndication_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ForwardingIndication_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_ForwardingIndication_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ForwardingIndication_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ForwardingIndication_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ForwardingIndication_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ForwardingIndication_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ForwardingIndication_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ForwardingIndication_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ForwardingIndication_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ForwardingIndication_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ForwardingIndication_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ForwardingIndication_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ForwardingIndication_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ForwardingIndication_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ForwardingIndication_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ForwardingIndication_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ForwardingIndication_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ForwardingIndication_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ForwardingIndication_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ForwardingIndication_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ForwardingIndication_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_ForwardingIndication_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_ForwardingIndication_value2enum_1[] = {
+	{ 0,	19,	"forwarding-admitted" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_ForwardingIndication_enum2value_1[] = {
+	0	/* forwarding-admitted(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_ForwardingIndication_specs_1 = {
+	asn_MAP_RANAP_ForwardingIndication_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_ForwardingIndication_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ForwardingIndication_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ForwardingIndication = {
+	"RANAP_ForwardingIndication",
+	"RANAP_ForwardingIndication",
+	RANAP_ForwardingIndication_free,
+	RANAP_ForwardingIndication_print,
+	RANAP_ForwardingIndication_constraint,
+	RANAP_ForwardingIndication_decode_ber,
+	RANAP_ForwardingIndication_encode_der,
+	RANAP_ForwardingIndication_decode_xer,
+	RANAP_ForwardingIndication_encode_xer,
+	RANAP_ForwardingIndication_decode_uper,
+	RANAP_ForwardingIndication_encode_uper,
+	RANAP_ForwardingIndication_decode_aper,
+	RANAP_ForwardingIndication_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ForwardingIndication_tags_1,
+	sizeof(asn_DEF_RANAP_ForwardingIndication_tags_1)
+		/sizeof(asn_DEF_RANAP_ForwardingIndication_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ForwardingIndication_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ForwardingIndication_tags_1)
+		/sizeof(asn_DEF_RANAP_ForwardingIndication_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_ForwardingIndication_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_ForwardingIndication_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ForwardingIndication.h b/src/ranap/RANAP_ForwardingIndication.h
new file mode 100644
index 0000000..ee4481c
--- /dev/null
+++ b/src/ranap/RANAP_ForwardingIndication.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ForwardingIndication_H_
+#define	_RANAP_ForwardingIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_ForwardingIndication {
+	RANAP_ForwardingIndication_forwarding_admitted	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_ForwardingIndication;
+
+/* RANAP_ForwardingIndication */
+typedef long	 RANAP_ForwardingIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ForwardingIndication;
+asn_struct_free_f RANAP_ForwardingIndication_free;
+asn_struct_print_f RANAP_ForwardingIndication_print;
+asn_constr_check_f RANAP_ForwardingIndication_constraint;
+ber_type_decoder_f RANAP_ForwardingIndication_decode_ber;
+der_type_encoder_f RANAP_ForwardingIndication_encode_der;
+xer_type_decoder_f RANAP_ForwardingIndication_decode_xer;
+xer_type_encoder_f RANAP_ForwardingIndication_encode_xer;
+per_type_decoder_f RANAP_ForwardingIndication_decode_uper;
+per_type_encoder_f RANAP_ForwardingIndication_encode_uper;
+per_type_decoder_f RANAP_ForwardingIndication_decode_aper;
+per_type_encoder_f RANAP_ForwardingIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ForwardingIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_FrameSequenceNumber.c b/src/ranap/RANAP_FrameSequenceNumber.c
new file mode 100644
index 0000000..b4a4858
--- /dev/null
+++ b/src/ranap/RANAP_FrameSequenceNumber.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_FrameSequenceNumber.h"
+
+int
+RANAP_FrameSequenceNumber_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 15l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_FrameSequenceNumber_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_FrameSequenceNumber_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_FrameSequenceNumber_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_FrameSequenceNumber_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_FrameSequenceNumber_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_FrameSequenceNumber_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_FrameSequenceNumber_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_FrameSequenceNumber_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_FrameSequenceNumber_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_FrameSequenceNumber_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_FrameSequenceNumber_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_FrameSequenceNumber_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 4,  4,  0l,  15l }	/* (0..15) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_FrameSequenceNumber_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_FrameSequenceNumber = {
+	"RANAP_FrameSequenceNumber",
+	"RANAP_FrameSequenceNumber",
+	RANAP_FrameSequenceNumber_free,
+	RANAP_FrameSequenceNumber_print,
+	RANAP_FrameSequenceNumber_constraint,
+	RANAP_FrameSequenceNumber_decode_ber,
+	RANAP_FrameSequenceNumber_encode_der,
+	RANAP_FrameSequenceNumber_decode_xer,
+	RANAP_FrameSequenceNumber_encode_xer,
+	RANAP_FrameSequenceNumber_decode_uper,
+	RANAP_FrameSequenceNumber_encode_uper,
+	RANAP_FrameSequenceNumber_decode_aper,
+	RANAP_FrameSequenceNumber_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_FrameSequenceNumber_tags_1,
+	sizeof(asn_DEF_RANAP_FrameSequenceNumber_tags_1)
+		/sizeof(asn_DEF_RANAP_FrameSequenceNumber_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_FrameSequenceNumber_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_FrameSequenceNumber_tags_1)
+		/sizeof(asn_DEF_RANAP_FrameSequenceNumber_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_FrameSequenceNumber_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_FrameSequenceNumber.h b/src/ranap/RANAP_FrameSequenceNumber.h
new file mode 100644
index 0000000..0c2d9e2
--- /dev/null
+++ b/src/ranap/RANAP_FrameSequenceNumber.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_FrameSequenceNumber_H_
+#define	_RANAP_FrameSequenceNumber_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_FrameSequenceNumber */
+typedef long	 RANAP_FrameSequenceNumber_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_FrameSequenceNumber;
+asn_struct_free_f RANAP_FrameSequenceNumber_free;
+asn_struct_print_f RANAP_FrameSequenceNumber_print;
+asn_constr_check_f RANAP_FrameSequenceNumber_constraint;
+ber_type_decoder_f RANAP_FrameSequenceNumber_decode_ber;
+der_type_encoder_f RANAP_FrameSequenceNumber_encode_der;
+xer_type_decoder_f RANAP_FrameSequenceNumber_decode_xer;
+xer_type_encoder_f RANAP_FrameSequenceNumber_encode_xer;
+per_type_decoder_f RANAP_FrameSequenceNumber_decode_uper;
+per_type_encoder_f RANAP_FrameSequenceNumber_encode_uper;
+per_type_decoder_f RANAP_FrameSequenceNumber_decode_aper;
+per_type_encoder_f RANAP_FrameSequenceNumber_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_FrameSequenceNumber_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_FrequenceLayerConvergenceFlag.c b/src/ranap/RANAP_FrequenceLayerConvergenceFlag.c
new file mode 100644
index 0000000..539554c
--- /dev/null
+++ b/src/ranap/RANAP_FrequenceLayerConvergenceFlag.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_FrequenceLayerConvergenceFlag.h"
+
+int
+RANAP_FrequenceLayerConvergenceFlag_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_FrequenceLayerConvergenceFlag_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_FrequenceLayerConvergenceFlag_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_FrequenceLayerConvergenceFlag_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_FrequenceLayerConvergenceFlag_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_FrequenceLayerConvergenceFlag_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_FrequenceLayerConvergenceFlag_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_FrequenceLayerConvergenceFlag_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_FrequenceLayerConvergenceFlag_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_FrequenceLayerConvergenceFlag_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_FrequenceLayerConvergenceFlag_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_FrequenceLayerConvergenceFlag_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_FrequenceLayerConvergenceFlag_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_FrequenceLayerConvergenceFlag_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_FrequenceLayerConvergenceFlag_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_FrequenceLayerConvergenceFlag_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_FrequenceLayerConvergenceFlag_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_FrequenceLayerConvergenceFlag_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_FrequenceLayerConvergenceFlag_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_FrequenceLayerConvergenceFlag_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_FrequenceLayerConvergenceFlag_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_FrequenceLayerConvergenceFlag_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_FrequenceLayerConvergenceFlag_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_FrequenceLayerConvergenceFlag_value2enum_1[] = {
+	{ 0,	11,	"no-FLC-flag" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_FrequenceLayerConvergenceFlag_enum2value_1[] = {
+	0	/* no-FLC-flag(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_FrequenceLayerConvergenceFlag_specs_1 = {
+	asn_MAP_RANAP_FrequenceLayerConvergenceFlag_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_FrequenceLayerConvergenceFlag_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_FrequenceLayerConvergenceFlag_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_FrequenceLayerConvergenceFlag = {
+	"RANAP_FrequenceLayerConvergenceFlag",
+	"RANAP_FrequenceLayerConvergenceFlag",
+	RANAP_FrequenceLayerConvergenceFlag_free,
+	RANAP_FrequenceLayerConvergenceFlag_print,
+	RANAP_FrequenceLayerConvergenceFlag_constraint,
+	RANAP_FrequenceLayerConvergenceFlag_decode_ber,
+	RANAP_FrequenceLayerConvergenceFlag_encode_der,
+	RANAP_FrequenceLayerConvergenceFlag_decode_xer,
+	RANAP_FrequenceLayerConvergenceFlag_encode_xer,
+	RANAP_FrequenceLayerConvergenceFlag_decode_uper,
+	RANAP_FrequenceLayerConvergenceFlag_encode_uper,
+	RANAP_FrequenceLayerConvergenceFlag_decode_aper,
+	RANAP_FrequenceLayerConvergenceFlag_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_FrequenceLayerConvergenceFlag_tags_1,
+	sizeof(asn_DEF_RANAP_FrequenceLayerConvergenceFlag_tags_1)
+		/sizeof(asn_DEF_RANAP_FrequenceLayerConvergenceFlag_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_FrequenceLayerConvergenceFlag_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_FrequenceLayerConvergenceFlag_tags_1)
+		/sizeof(asn_DEF_RANAP_FrequenceLayerConvergenceFlag_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_FrequenceLayerConvergenceFlag_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_FrequenceLayerConvergenceFlag_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_FrequenceLayerConvergenceFlag.h b/src/ranap/RANAP_FrequenceLayerConvergenceFlag.h
new file mode 100644
index 0000000..df2eaf5
--- /dev/null
+++ b/src/ranap/RANAP_FrequenceLayerConvergenceFlag.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_FrequenceLayerConvergenceFlag_H_
+#define	_RANAP_FrequenceLayerConvergenceFlag_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_FrequenceLayerConvergenceFlag {
+	RANAP_FrequenceLayerConvergenceFlag_no_FLC_flag	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_FrequenceLayerConvergenceFlag;
+
+/* RANAP_FrequenceLayerConvergenceFlag */
+typedef long	 RANAP_FrequenceLayerConvergenceFlag_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_FrequenceLayerConvergenceFlag;
+asn_struct_free_f RANAP_FrequenceLayerConvergenceFlag_free;
+asn_struct_print_f RANAP_FrequenceLayerConvergenceFlag_print;
+asn_constr_check_f RANAP_FrequenceLayerConvergenceFlag_constraint;
+ber_type_decoder_f RANAP_FrequenceLayerConvergenceFlag_decode_ber;
+der_type_encoder_f RANAP_FrequenceLayerConvergenceFlag_encode_der;
+xer_type_decoder_f RANAP_FrequenceLayerConvergenceFlag_decode_xer;
+xer_type_encoder_f RANAP_FrequenceLayerConvergenceFlag_encode_xer;
+per_type_decoder_f RANAP_FrequenceLayerConvergenceFlag_decode_uper;
+per_type_encoder_f RANAP_FrequenceLayerConvergenceFlag_encode_uper;
+per_type_decoder_f RANAP_FrequenceLayerConvergenceFlag_decode_aper;
+per_type_encoder_f RANAP_FrequenceLayerConvergenceFlag_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_FrequenceLayerConvergenceFlag_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GA-AltitudeAndDirection.c b/src/ranap/RANAP_GA-AltitudeAndDirection.c
new file mode 100644
index 0000000..a656e03
--- /dev/null
+++ b/src/ranap/RANAP_GA-AltitudeAndDirection.c
@@ -0,0 +1,260 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GA-AltitudeAndDirection.h"
+
+static int
+directionOfAltitude_2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+directionOfAltitude_2_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+static void
+directionOfAltitude_2_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	directionOfAltitude_2_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+static int
+directionOfAltitude_2_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	directionOfAltitude_2_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+static asn_dec_rval_t
+directionOfAltitude_2_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	directionOfAltitude_2_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+static asn_enc_rval_t
+directionOfAltitude_2_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	directionOfAltitude_2_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+static asn_dec_rval_t
+directionOfAltitude_2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	directionOfAltitude_2_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+static asn_enc_rval_t
+directionOfAltitude_2_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	directionOfAltitude_2_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+static asn_dec_rval_t
+directionOfAltitude_2_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	directionOfAltitude_2_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_enc_rval_t
+directionOfAltitude_2_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	directionOfAltitude_2_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_enc_rval_t
+directionOfAltitude_2_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	directionOfAltitude_2_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_dec_rval_t
+directionOfAltitude_2_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	directionOfAltitude_2_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static int
+memb_altitude_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 32767l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_directionOfAltitude_constr_2 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 1,  1,  0l,  1l }	/* (0..1) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_altitude_constr_5 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 15,  15,  0l,  32767l }	/* (0..32767) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_directionOfAltitude_value2enum_2[] = {
+	{ 0,	6,	"height" },
+	{ 1,	5,	"depth" }
+};
+static const unsigned int asn_MAP_directionOfAltitude_enum2value_2[] = {
+	1,	/* depth(1) */
+	0	/* height(0) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_directionOfAltitude_specs_2 = {
+	asn_MAP_directionOfAltitude_value2enum_2,	/* "tag" => N; sorted by tag */
+	asn_MAP_directionOfAltitude_enum2value_2,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_directionOfAltitude_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_directionOfAltitude_2 = {
+	"directionOfAltitude",
+	"directionOfAltitude",
+	directionOfAltitude_2_free,
+	directionOfAltitude_2_print,
+	directionOfAltitude_2_constraint,
+	directionOfAltitude_2_decode_ber,
+	directionOfAltitude_2_encode_der,
+	directionOfAltitude_2_decode_xer,
+	directionOfAltitude_2_encode_xer,
+	directionOfAltitude_2_decode_uper,
+	directionOfAltitude_2_encode_uper,
+	directionOfAltitude_2_decode_aper,
+	directionOfAltitude_2_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_directionOfAltitude_tags_2,
+	sizeof(asn_DEF_directionOfAltitude_tags_2)
+		/sizeof(asn_DEF_directionOfAltitude_tags_2[0]) - 1, /* 1 */
+	asn_DEF_directionOfAltitude_tags_2,	/* Same as above */
+	sizeof(asn_DEF_directionOfAltitude_tags_2)
+		/sizeof(asn_DEF_directionOfAltitude_tags_2[0]), /* 2 */
+	&asn_PER_type_directionOfAltitude_constr_2,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_directionOfAltitude_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_GA_AltitudeAndDirection_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_AltitudeAndDirection, directionOfAltitude),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_directionOfAltitude_2,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"directionOfAltitude"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_AltitudeAndDirection, altitude),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_altitude_constraint_1,
+		&asn_PER_memb_altitude_constr_5,
+		0,
+		"altitude"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_GA_AltitudeAndDirection_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_GA_AltitudeAndDirection_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* directionOfAltitude */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altitude */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_GA_AltitudeAndDirection_specs_1 = {
+	sizeof(struct RANAP_GA_AltitudeAndDirection),
+	offsetof(struct RANAP_GA_AltitudeAndDirection, _asn_ctx),
+	asn_MAP_RANAP_GA_AltitudeAndDirection_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GA_AltitudeAndDirection = {
+	"RANAP_GA-AltitudeAndDirection",
+	"RANAP_GA-AltitudeAndDirection",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GA_AltitudeAndDirection_tags_1,
+	sizeof(asn_DEF_RANAP_GA_AltitudeAndDirection_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_AltitudeAndDirection_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GA_AltitudeAndDirection_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GA_AltitudeAndDirection_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_AltitudeAndDirection_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_GA_AltitudeAndDirection_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_GA_AltitudeAndDirection_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_GA-AltitudeAndDirection.h b/src/ranap/RANAP_GA-AltitudeAndDirection.h
new file mode 100644
index 0000000..e270a75
--- /dev/null
+++ b/src/ranap/RANAP_GA-AltitudeAndDirection.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GA_AltitudeAndDirection_H_
+#define	_RANAP_GA_AltitudeAndDirection_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum directionOfAltitude {
+	directionOfAltitude_height	= 0,
+	directionOfAltitude_depth	= 1
+} e_directionOfAltitude;
+
+/* RANAP_GA-AltitudeAndDirection */
+typedef struct RANAP_GA_AltitudeAndDirection {
+	long	 directionOfAltitude;
+	long	 altitude;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_GA_AltitudeAndDirection_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_directionOfAltitude_2;	// (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GA_AltitudeAndDirection;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GA_AltitudeAndDirection_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GA-EllipsoidArc.c b/src/ranap/RANAP_GA-EllipsoidArc.c
new file mode 100644
index 0000000..24c5fbf
--- /dev/null
+++ b/src/ranap/RANAP_GA-EllipsoidArc.c
@@ -0,0 +1,273 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GA-EllipsoidArc.h"
+
+static int
+memb_innerRadius_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 65535l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_uncertaintyRadius_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 127l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_offsetAngle_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 179l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_includedAngle_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 179l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_confidence_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 127l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_innerRadius_constr_3 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_uncertaintyRadius_constr_4 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  0l,  127l }	/* (0..127) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_offsetAngle_constr_5 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  0l,  179l }	/* (0..179) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_includedAngle_constr_6 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  0l,  179l }	/* (0..179) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_confidence_constr_7 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  0l,  127l }	/* (0..127) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_GA_EllipsoidArc_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_EllipsoidArc, geographicalCoordinates),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GeographicalCoordinates,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"geographicalCoordinates"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_EllipsoidArc, innerRadius),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_innerRadius_constraint_1,
+		&asn_PER_memb_innerRadius_constr_3,
+		0,
+		"innerRadius"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_EllipsoidArc, uncertaintyRadius),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_uncertaintyRadius_constraint_1,
+		&asn_PER_memb_uncertaintyRadius_constr_4,
+		0,
+		"uncertaintyRadius"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_EllipsoidArc, offsetAngle),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_offsetAngle_constraint_1,
+		&asn_PER_memb_offsetAngle_constr_5,
+		0,
+		"offsetAngle"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_EllipsoidArc, includedAngle),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_includedAngle_constraint_1,
+		&asn_PER_memb_includedAngle_constr_6,
+		0,
+		"includedAngle"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_EllipsoidArc, confidence),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_confidence_constraint_1,
+		&asn_PER_memb_confidence_constr_7,
+		0,
+		"confidence"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_GA_EllipsoidArc, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_GA_EllipsoidArc_oms_1[] = { 6 };
+static const ber_tlv_tag_t asn_DEF_RANAP_GA_EllipsoidArc_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_GA_EllipsoidArc_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* geographicalCoordinates */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* innerRadius */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uncertaintyRadius */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* offsetAngle */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* includedAngle */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* confidence */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_GA_EllipsoidArc_specs_1 = {
+	sizeof(struct RANAP_GA_EllipsoidArc),
+	offsetof(struct RANAP_GA_EllipsoidArc, _asn_ctx),
+	asn_MAP_RANAP_GA_EllipsoidArc_tag2el_1,
+	7,	/* Count of tags in the map */
+	asn_MAP_RANAP_GA_EllipsoidArc_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	6,	/* Start extensions */
+	8	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GA_EllipsoidArc = {
+	"RANAP_GA-EllipsoidArc",
+	"RANAP_GA-EllipsoidArc",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GA_EllipsoidArc_tags_1,
+	sizeof(asn_DEF_RANAP_GA_EllipsoidArc_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_EllipsoidArc_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GA_EllipsoidArc_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GA_EllipsoidArc_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_EllipsoidArc_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_GA_EllipsoidArc_1,
+	7,	/* Elements count */
+	&asn_SPC_RANAP_GA_EllipsoidArc_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_GA-EllipsoidArc.h b/src/ranap/RANAP_GA-EllipsoidArc.h
new file mode 100644
index 0000000..476bdc4
--- /dev/null
+++ b/src/ranap/RANAP_GA-EllipsoidArc.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GA_EllipsoidArc_H_
+#define	_RANAP_GA_EllipsoidArc_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_GeographicalCoordinates.h"
+#include <NativeInteger.h>
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GA-EllipsoidArc */
+typedef struct RANAP_GA_EllipsoidArc {
+	RANAP_GeographicalCoordinates_t	 geographicalCoordinates;
+	long	 innerRadius;
+	long	 uncertaintyRadius;
+	long	 offsetAngle;
+	long	 includedAngle;
+	long	 confidence;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_GA_EllipsoidArc_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GA_EllipsoidArc;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GA_EllipsoidArc_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GA-Point.c b/src/ranap/RANAP_GA-Point.c
new file mode 100644
index 0000000..7f79bd7
--- /dev/null
+++ b/src/ranap/RANAP_GA-Point.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GA-Point.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_GA_Point_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_Point, geographicalCoordinates),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GeographicalCoordinates,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"geographicalCoordinates"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_GA_Point, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_GA_Point_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_GA_Point_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_GA_Point_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* geographicalCoordinates */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_GA_Point_specs_1 = {
+	sizeof(struct RANAP_GA_Point),
+	offsetof(struct RANAP_GA_Point, _asn_ctx),
+	asn_MAP_RANAP_GA_Point_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_GA_Point_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GA_Point = {
+	"RANAP_GA-Point",
+	"RANAP_GA-Point",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GA_Point_tags_1,
+	sizeof(asn_DEF_RANAP_GA_Point_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_Point_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GA_Point_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GA_Point_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_Point_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_GA_Point_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_GA_Point_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_GA-Point.h b/src/ranap/RANAP_GA-Point.h
new file mode 100644
index 0000000..7d3764e
--- /dev/null
+++ b/src/ranap/RANAP_GA-Point.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GA_Point_H_
+#define	_RANAP_GA_Point_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_GeographicalCoordinates.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GA-Point */
+typedef struct RANAP_GA_Point {
+	RANAP_GeographicalCoordinates_t	 geographicalCoordinates;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_GA_Point_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GA_Point;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GA_Point_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GA-PointWithAltitude.c b/src/ranap/RANAP_GA-PointWithAltitude.c
new file mode 100644
index 0000000..92686d9
--- /dev/null
+++ b/src/ranap/RANAP_GA-PointWithAltitude.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GA-PointWithAltitude.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_GA_PointWithAltitude_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_PointWithAltitude, geographicalCoordinates),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GeographicalCoordinates,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"geographicalCoordinates"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_PointWithAltitude, altitudeAndDirection),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GA_AltitudeAndDirection,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altitudeAndDirection"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_GA_PointWithAltitude, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_GA_PointWithAltitude_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_GA_PointWithAltitude_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_GA_PointWithAltitude_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* geographicalCoordinates */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* altitudeAndDirection */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_GA_PointWithAltitude_specs_1 = {
+	sizeof(struct RANAP_GA_PointWithAltitude),
+	offsetof(struct RANAP_GA_PointWithAltitude, _asn_ctx),
+	asn_MAP_RANAP_GA_PointWithAltitude_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_GA_PointWithAltitude_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GA_PointWithAltitude = {
+	"RANAP_GA-PointWithAltitude",
+	"RANAP_GA-PointWithAltitude",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GA_PointWithAltitude_tags_1,
+	sizeof(asn_DEF_RANAP_GA_PointWithAltitude_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_PointWithAltitude_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GA_PointWithAltitude_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GA_PointWithAltitude_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_PointWithAltitude_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_GA_PointWithAltitude_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_GA_PointWithAltitude_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_GA-PointWithAltitude.h b/src/ranap/RANAP_GA-PointWithAltitude.h
new file mode 100644
index 0000000..edcad26
--- /dev/null
+++ b/src/ranap/RANAP_GA-PointWithAltitude.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GA_PointWithAltitude_H_
+#define	_RANAP_GA_PointWithAltitude_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_GeographicalCoordinates.h"
+#include "RANAP_GA-AltitudeAndDirection.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GA-PointWithAltitude */
+typedef struct RANAP_GA_PointWithAltitude {
+	RANAP_GeographicalCoordinates_t	 geographicalCoordinates;
+	RANAP_GA_AltitudeAndDirection_t	 altitudeAndDirection;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_GA_PointWithAltitude_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GA_PointWithAltitude;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GA_PointWithAltitude_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GA-PointWithAltitudeAndUncertaintyEllipsoid.c b/src/ranap/RANAP_GA-PointWithAltitudeAndUncertaintyEllipsoid.c
new file mode 100644
index 0000000..ede9b4f
--- /dev/null
+++ b/src/ranap/RANAP_GA-PointWithAltitudeAndUncertaintyEllipsoid.c
@@ -0,0 +1,173 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GA-PointWithAltitudeAndUncertaintyEllipsoid.h"
+
+static int
+memb_uncertaintyAltitude_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 127l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_confidence_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 127l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_uncertaintyAltitude_constr_5 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  0l,  127l }	/* (0..127) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_confidence_constr_6 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  0l,  127l }	/* (0..127) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid, geographicalCoordinates),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GeographicalCoordinates,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"geographicalCoordinates"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid, altitudeAndDirection),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GA_AltitudeAndDirection,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altitudeAndDirection"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid, uncertaintyEllipse),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GA_UncertaintyEllipse,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"uncertaintyEllipse"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid, uncertaintyAltitude),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_uncertaintyAltitude_constraint_1,
+		&asn_PER_memb_uncertaintyAltitude_constr_5,
+		0,
+		"uncertaintyAltitude"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid, confidence),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_confidence_constraint_1,
+		&asn_PER_memb_confidence_constr_6,
+		0,
+		"confidence"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_oms_1[] = { 5 };
+static const ber_tlv_tag_t asn_DEF_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* geographicalCoordinates */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* altitudeAndDirection */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uncertaintyEllipse */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uncertaintyAltitude */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* confidence */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_specs_1 = {
+	sizeof(struct RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid),
+	offsetof(struct RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid, _asn_ctx),
+	asn_MAP_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_tag2el_1,
+	6,	/* Count of tags in the map */
+	asn_MAP_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	5,	/* Start extensions */
+	7	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid = {
+	"RANAP_GA-PointWithAltitudeAndUncertaintyEllipsoid",
+	"RANAP_GA-PointWithAltitudeAndUncertaintyEllipsoid",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_tags_1,
+	sizeof(asn_DEF_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_1,
+	6,	/* Elements count */
+	&asn_SPC_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_GA-PointWithAltitudeAndUncertaintyEllipsoid.h b/src/ranap/RANAP_GA-PointWithAltitudeAndUncertaintyEllipsoid.h
new file mode 100644
index 0000000..62aa5b6
--- /dev/null
+++ b/src/ranap/RANAP_GA-PointWithAltitudeAndUncertaintyEllipsoid.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_H_
+#define	_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_GeographicalCoordinates.h"
+#include "RANAP_GA-AltitudeAndDirection.h"
+#include "RANAP_GA-UncertaintyEllipse.h"
+#include <NativeInteger.h>
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GA-PointWithAltitudeAndUncertaintyEllipsoid */
+typedef struct RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid {
+	RANAP_GeographicalCoordinates_t	 geographicalCoordinates;
+	RANAP_GA_AltitudeAndDirection_t	 altitudeAndDirection;
+	RANAP_GA_UncertaintyEllipse_t	 uncertaintyEllipse;
+	long	 uncertaintyAltitude;
+	long	 confidence;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GA-PointWithUnCertainty.c b/src/ranap/RANAP_GA-PointWithUnCertainty.c
new file mode 100644
index 0000000..e3d88d0
--- /dev/null
+++ b/src/ranap/RANAP_GA-PointWithUnCertainty.c
@@ -0,0 +1,113 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GA-PointWithUnCertainty.h"
+
+static int
+memb_uncertaintyCode_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 127l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_uncertaintyCode_constr_4 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  0l,  127l }	/* (0..127) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_GA_PointWithUnCertainty_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_PointWithUnCertainty, geographicalCoordinates),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GeographicalCoordinates,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"geographicalCoordinates"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_GA_PointWithUnCertainty, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_PointWithUnCertainty, uncertaintyCode),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_uncertaintyCode_constraint_1,
+		&asn_PER_memb_uncertaintyCode_constr_4,
+		0,
+		"uncertaintyCode"
+		},
+};
+static const int asn_MAP_RANAP_GA_PointWithUnCertainty_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_GA_PointWithUnCertainty_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_GA_PointWithUnCertainty_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* geographicalCoordinates */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iE-Extensions */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* uncertaintyCode */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_GA_PointWithUnCertainty_specs_1 = {
+	sizeof(struct RANAP_GA_PointWithUnCertainty),
+	offsetof(struct RANAP_GA_PointWithUnCertainty, _asn_ctx),
+	asn_MAP_RANAP_GA_PointWithUnCertainty_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_GA_PointWithUnCertainty_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GA_PointWithUnCertainty = {
+	"RANAP_GA-PointWithUnCertainty",
+	"RANAP_GA-PointWithUnCertainty",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GA_PointWithUnCertainty_tags_1,
+	sizeof(asn_DEF_RANAP_GA_PointWithUnCertainty_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_PointWithUnCertainty_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GA_PointWithUnCertainty_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GA_PointWithUnCertainty_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_PointWithUnCertainty_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_GA_PointWithUnCertainty_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_GA_PointWithUnCertainty_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_GA-PointWithUnCertainty.h b/src/ranap/RANAP_GA-PointWithUnCertainty.h
new file mode 100644
index 0000000..86a6a82
--- /dev/null
+++ b/src/ranap/RANAP_GA-PointWithUnCertainty.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GA_PointWithUnCertainty_H_
+#define	_RANAP_GA_PointWithUnCertainty_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_GeographicalCoordinates.h"
+#include "RANAP_IE-Extensions.h"
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GA-PointWithUnCertainty */
+typedef struct RANAP_GA_PointWithUnCertainty {
+	RANAP_GeographicalCoordinates_t	 geographicalCoordinates;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	long	 uncertaintyCode;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_GA_PointWithUnCertainty_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GA_PointWithUnCertainty;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GA_PointWithUnCertainty_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GA-PointWithUnCertaintyEllipse.c b/src/ranap/RANAP_GA-PointWithUnCertaintyEllipse.c
new file mode 100644
index 0000000..1dbf7d2
--- /dev/null
+++ b/src/ranap/RANAP_GA-PointWithUnCertaintyEllipse.c
@@ -0,0 +1,123 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GA-PointWithUnCertaintyEllipse.h"
+
+static int
+memb_confidence_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 127l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_confidence_constr_4 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  0l,  127l }	/* (0..127) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_GA_PointWithUnCertaintyEllipse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_PointWithUnCertaintyEllipse, geographicalCoordinates),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GeographicalCoordinates,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"geographicalCoordinates"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_PointWithUnCertaintyEllipse, uncertaintyEllipse),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GA_UncertaintyEllipse,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"uncertaintyEllipse"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_PointWithUnCertaintyEllipse, confidence),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_confidence_constraint_1,
+		&asn_PER_memb_confidence_constr_4,
+		0,
+		"confidence"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_GA_PointWithUnCertaintyEllipse, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_GA_PointWithUnCertaintyEllipse_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_RANAP_GA_PointWithUnCertaintyEllipse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_GA_PointWithUnCertaintyEllipse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* geographicalCoordinates */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uncertaintyEllipse */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* confidence */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_GA_PointWithUnCertaintyEllipse_specs_1 = {
+	sizeof(struct RANAP_GA_PointWithUnCertaintyEllipse),
+	offsetof(struct RANAP_GA_PointWithUnCertaintyEllipse, _asn_ctx),
+	asn_MAP_RANAP_GA_PointWithUnCertaintyEllipse_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_GA_PointWithUnCertaintyEllipse_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	3,	/* Start extensions */
+	5	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GA_PointWithUnCertaintyEllipse = {
+	"RANAP_GA-PointWithUnCertaintyEllipse",
+	"RANAP_GA-PointWithUnCertaintyEllipse",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GA_PointWithUnCertaintyEllipse_tags_1,
+	sizeof(asn_DEF_RANAP_GA_PointWithUnCertaintyEllipse_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_PointWithUnCertaintyEllipse_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GA_PointWithUnCertaintyEllipse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GA_PointWithUnCertaintyEllipse_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_PointWithUnCertaintyEllipse_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_GA_PointWithUnCertaintyEllipse_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_GA_PointWithUnCertaintyEllipse_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_GA-PointWithUnCertaintyEllipse.h b/src/ranap/RANAP_GA-PointWithUnCertaintyEllipse.h
new file mode 100644
index 0000000..725ef0d
--- /dev/null
+++ b/src/ranap/RANAP_GA-PointWithUnCertaintyEllipse.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GA_PointWithUnCertaintyEllipse_H_
+#define	_RANAP_GA_PointWithUnCertaintyEllipse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_GeographicalCoordinates.h"
+#include "RANAP_GA-UncertaintyEllipse.h"
+#include <NativeInteger.h>
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GA-PointWithUnCertaintyEllipse */
+typedef struct RANAP_GA_PointWithUnCertaintyEllipse {
+	RANAP_GeographicalCoordinates_t	 geographicalCoordinates;
+	RANAP_GA_UncertaintyEllipse_t	 uncertaintyEllipse;
+	long	 confidence;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_GA_PointWithUnCertaintyEllipse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GA_PointWithUnCertaintyEllipse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GA_PointWithUnCertaintyEllipse_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GA-Polygon.c b/src/ranap/RANAP_GA-Polygon.c
new file mode 100644
index 0000000..018c9e3
--- /dev/null
+++ b/src/ranap/RANAP_GA-Polygon.c
@@ -0,0 +1,125 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GA-Polygon.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_GA_Polygon_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  1l,  15l }	/* (SIZE(1..15)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct Member, geographicalCoordinates),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GeographicalCoordinates,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"geographicalCoordinates"
+		},
+	{ ATF_POINTER, 1, offsetof(struct Member, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_Member_oms_2[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* geographicalCoordinates */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+	sizeof(struct Member),
+	offsetof(struct Member, _asn_ctx),
+	asn_MAP_Member_tag2el_2,
+	2,	/* Count of tags in the map */
+	asn_MAP_Member_oms_2,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+	"SEQUENCE",
+	"SEQUENCE",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_Member_tags_2,
+	sizeof(asn_DEF_Member_tags_2)
+		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	asn_DEF_Member_tags_2,	/* Same as above */
+	sizeof(asn_DEF_Member_tags_2)
+		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_Member_2,
+	2,	/* Elements count */
+	&asn_SPC_Member_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_GA_Polygon_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_Member_2,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_GA_Polygon_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_GA_Polygon_specs_1 = {
+	sizeof(struct RANAP_GA_Polygon),
+	offsetof(struct RANAP_GA_Polygon, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GA_Polygon = {
+	"RANAP_GA-Polygon",
+	"RANAP_GA-Polygon",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GA_Polygon_tags_1,
+	sizeof(asn_DEF_RANAP_GA_Polygon_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_Polygon_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GA_Polygon_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GA_Polygon_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_Polygon_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_GA_Polygon_constr_1,
+	asn_MBR_RANAP_GA_Polygon_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_GA_Polygon_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_GA-Polygon.h b/src/ranap/RANAP_GA-Polygon.h
new file mode 100644
index 0000000..ed27da7
--- /dev/null
+++ b/src/ranap/RANAP_GA-Polygon.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GA_Polygon_H_
+#define	_RANAP_GA_Polygon_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "RANAP_GeographicalCoordinates.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GA-Polygon */
+typedef struct RANAP_GA_Polygon {
+	A_SEQUENCE_OF(struct Member {
+		RANAP_GeographicalCoordinates_t	 geographicalCoordinates;
+		RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_GA_Polygon_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GA_Polygon;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GA_Polygon_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GA-UncertaintyEllipse.c b/src/ranap/RANAP_GA-UncertaintyEllipse.c
new file mode 100644
index 0000000..b82b7e4
--- /dev/null
+++ b/src/ranap/RANAP_GA-UncertaintyEllipse.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GA-UncertaintyEllipse.h"
+
+static int
+memb_uncertaintySemi_major_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 127l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_uncertaintySemi_minor_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 127l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_orientationOfMajorAxis_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 179l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_uncertaintySemi_major_constr_2 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  0l,  127l }	/* (0..127) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_uncertaintySemi_minor_constr_3 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  0l,  127l }	/* (0..127) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_orientationOfMajorAxis_constr_4 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  0l,  179l }	/* (0..179) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_GA_UncertaintyEllipse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_UncertaintyEllipse, uncertaintySemi_major),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_uncertaintySemi_major_constraint_1,
+		&asn_PER_memb_uncertaintySemi_major_constr_2,
+		0,
+		"uncertaintySemi-major"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_UncertaintyEllipse, uncertaintySemi_minor),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_uncertaintySemi_minor_constraint_1,
+		&asn_PER_memb_uncertaintySemi_minor_constr_3,
+		0,
+		"uncertaintySemi-minor"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_UncertaintyEllipse, orientationOfMajorAxis),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_orientationOfMajorAxis_constraint_1,
+		&asn_PER_memb_orientationOfMajorAxis_constr_4,
+		0,
+		"orientationOfMajorAxis"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_GA_UncertaintyEllipse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_GA_UncertaintyEllipse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uncertaintySemi-major */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uncertaintySemi-minor */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* orientationOfMajorAxis */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_GA_UncertaintyEllipse_specs_1 = {
+	sizeof(struct RANAP_GA_UncertaintyEllipse),
+	offsetof(struct RANAP_GA_UncertaintyEllipse, _asn_ctx),
+	asn_MAP_RANAP_GA_UncertaintyEllipse_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GA_UncertaintyEllipse = {
+	"RANAP_GA-UncertaintyEllipse",
+	"RANAP_GA-UncertaintyEllipse",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GA_UncertaintyEllipse_tags_1,
+	sizeof(asn_DEF_RANAP_GA_UncertaintyEllipse_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_UncertaintyEllipse_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GA_UncertaintyEllipse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GA_UncertaintyEllipse_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_UncertaintyEllipse_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_GA_UncertaintyEllipse_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_GA_UncertaintyEllipse_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_GA-UncertaintyEllipse.h b/src/ranap/RANAP_GA-UncertaintyEllipse.h
new file mode 100644
index 0000000..0524a29
--- /dev/null
+++ b/src/ranap/RANAP_GA-UncertaintyEllipse.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GA_UncertaintyEllipse_H_
+#define	_RANAP_GA_UncertaintyEllipse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GA-UncertaintyEllipse */
+typedef struct RANAP_GA_UncertaintyEllipse {
+	long	 uncertaintySemi_major;
+	long	 uncertaintySemi_minor;
+	long	 orientationOfMajorAxis;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_GA_UncertaintyEllipse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GA_UncertaintyEllipse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GA_UncertaintyEllipse_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GANSS-PositioningDataSet.c b/src/ranap/RANAP_GANSS-PositioningDataSet.c
new file mode 100644
index 0000000..3f3f137
--- /dev/null
+++ b/src/ranap/RANAP_GANSS-PositioningDataSet.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GANSS-PositioningDataSet.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_GANSS_PositioningDataSet_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  1l,  9l }	/* (SIZE(1..9)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_GANSS_PositioningDataSet_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_GANSS_PositioningMethodAndUsage,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_GANSS_PositioningDataSet_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_GANSS_PositioningDataSet_specs_1 = {
+	sizeof(struct RANAP_GANSS_PositioningDataSet),
+	offsetof(struct RANAP_GANSS_PositioningDataSet, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GANSS_PositioningDataSet = {
+	"RANAP_GANSS-PositioningDataSet",
+	"RANAP_GANSS-PositioningDataSet",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GANSS_PositioningDataSet_tags_1,
+	sizeof(asn_DEF_RANAP_GANSS_PositioningDataSet_tags_1)
+		/sizeof(asn_DEF_RANAP_GANSS_PositioningDataSet_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GANSS_PositioningDataSet_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GANSS_PositioningDataSet_tags_1)
+		/sizeof(asn_DEF_RANAP_GANSS_PositioningDataSet_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_GANSS_PositioningDataSet_constr_1,
+	asn_MBR_RANAP_GANSS_PositioningDataSet_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_GANSS_PositioningDataSet_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_GANSS-PositioningDataSet.h b/src/ranap/RANAP_GANSS-PositioningDataSet.h
new file mode 100644
index 0000000..d2502d0
--- /dev/null
+++ b/src/ranap/RANAP_GANSS-PositioningDataSet.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GANSS_PositioningDataSet_H_
+#define	_RANAP_GANSS_PositioningDataSet_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_GANSS-PositioningMethodAndUsage.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GANSS-PositioningDataSet */
+typedef struct RANAP_GANSS_PositioningDataSet {
+	A_SEQUENCE_OF(RANAP_GANSS_PositioningMethodAndUsage_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_GANSS_PositioningDataSet_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GANSS_PositioningDataSet;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GANSS_PositioningDataSet_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GANSS-PositioningMethodAndUsage.c b/src/ranap/RANAP_GANSS-PositioningMethodAndUsage.c
new file mode 100644
index 0000000..4c8aba8
--- /dev/null
+++ b/src/ranap/RANAP_GANSS-PositioningMethodAndUsage.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GANSS-PositioningMethodAndUsage.h"
+
+int
+RANAP_GANSS_PositioningMethodAndUsage_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 1l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_GANSS_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_GANSS_PositioningMethodAndUsage_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_GANSS_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_GANSS_PositioningMethodAndUsage_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_GANSS_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_GANSS_PositioningMethodAndUsage_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_GANSS_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_GANSS_PositioningMethodAndUsage_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_GANSS_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_GANSS_PositioningMethodAndUsage_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_GANSS_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_GANSS_PositioningMethodAndUsage_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_GANSS_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_GANSS_PositioningMethodAndUsage_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_GANSS_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_GANSS_PositioningMethodAndUsage_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_GANSS_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_GANSS_PositioningMethodAndUsage_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_GANSS_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_GANSS_PositioningMethodAndUsage_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_GANSS_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_GANSS_PositioningMethodAndUsage_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  1l,  1l }	/* (SIZE(1..1)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_GANSS_PositioningMethodAndUsage_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GANSS_PositioningMethodAndUsage = {
+	"RANAP_GANSS-PositioningMethodAndUsage",
+	"RANAP_GANSS-PositioningMethodAndUsage",
+	RANAP_GANSS_PositioningMethodAndUsage_free,
+	RANAP_GANSS_PositioningMethodAndUsage_print,
+	RANAP_GANSS_PositioningMethodAndUsage_constraint,
+	RANAP_GANSS_PositioningMethodAndUsage_decode_ber,
+	RANAP_GANSS_PositioningMethodAndUsage_encode_der,
+	RANAP_GANSS_PositioningMethodAndUsage_decode_xer,
+	RANAP_GANSS_PositioningMethodAndUsage_encode_xer,
+	RANAP_GANSS_PositioningMethodAndUsage_decode_uper,
+	RANAP_GANSS_PositioningMethodAndUsage_encode_uper,
+	RANAP_GANSS_PositioningMethodAndUsage_decode_aper,
+	RANAP_GANSS_PositioningMethodAndUsage_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GANSS_PositioningMethodAndUsage_tags_1,
+	sizeof(asn_DEF_RANAP_GANSS_PositioningMethodAndUsage_tags_1)
+		/sizeof(asn_DEF_RANAP_GANSS_PositioningMethodAndUsage_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GANSS_PositioningMethodAndUsage_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GANSS_PositioningMethodAndUsage_tags_1)
+		/sizeof(asn_DEF_RANAP_GANSS_PositioningMethodAndUsage_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_GANSS_PositioningMethodAndUsage_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_GANSS-PositioningMethodAndUsage.h b/src/ranap/RANAP_GANSS-PositioningMethodAndUsage.h
new file mode 100644
index 0000000..793ca23
--- /dev/null
+++ b/src/ranap/RANAP_GANSS-PositioningMethodAndUsage.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GANSS_PositioningMethodAndUsage_H_
+#define	_RANAP_GANSS_PositioningMethodAndUsage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GANSS-PositioningMethodAndUsage */
+typedef OCTET_STRING_t	 RANAP_GANSS_PositioningMethodAndUsage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GANSS_PositioningMethodAndUsage;
+asn_struct_free_f RANAP_GANSS_PositioningMethodAndUsage_free;
+asn_struct_print_f RANAP_GANSS_PositioningMethodAndUsage_print;
+asn_constr_check_f RANAP_GANSS_PositioningMethodAndUsage_constraint;
+ber_type_decoder_f RANAP_GANSS_PositioningMethodAndUsage_decode_ber;
+der_type_encoder_f RANAP_GANSS_PositioningMethodAndUsage_encode_der;
+xer_type_decoder_f RANAP_GANSS_PositioningMethodAndUsage_decode_xer;
+xer_type_encoder_f RANAP_GANSS_PositioningMethodAndUsage_encode_xer;
+per_type_decoder_f RANAP_GANSS_PositioningMethodAndUsage_decode_uper;
+per_type_encoder_f RANAP_GANSS_PositioningMethodAndUsage_encode_uper;
+per_type_decoder_f RANAP_GANSS_PositioningMethodAndUsage_decode_aper;
+per_type_encoder_f RANAP_GANSS_PositioningMethodAndUsage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GANSS_PositioningMethodAndUsage_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GERAN-BSC-Container.c b/src/ranap/RANAP_GERAN-BSC-Container.c
new file mode 100644
index 0000000..99f91a5
--- /dev/null
+++ b/src/ranap/RANAP_GERAN-BSC-Container.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GERAN-BSC-Container.h"
+
+int
+RANAP_GERAN_BSC_Container_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_GERAN_BSC_Container_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_GERAN_BSC_Container_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_GERAN_BSC_Container_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_GERAN_BSC_Container_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_GERAN_BSC_Container_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_GERAN_BSC_Container_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_GERAN_BSC_Container_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_GERAN_BSC_Container_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_GERAN_BSC_Container_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_GERAN_BSC_Container_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_GERAN_BSC_Container_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_GERAN_BSC_Container_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_GERAN_BSC_Container_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_GERAN_BSC_Container_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_GERAN_BSC_Container_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_GERAN_BSC_Container_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_GERAN_BSC_Container_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_GERAN_BSC_Container_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_GERAN_BSC_Container_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_GERAN_BSC_Container_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_GERAN_BSC_Container_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_GERAN_BSC_Container_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GERAN_BSC_Container = {
+	"RANAP_GERAN-BSC-Container",
+	"RANAP_GERAN-BSC-Container",
+	RANAP_GERAN_BSC_Container_free,
+	RANAP_GERAN_BSC_Container_print,
+	RANAP_GERAN_BSC_Container_constraint,
+	RANAP_GERAN_BSC_Container_decode_ber,
+	RANAP_GERAN_BSC_Container_encode_der,
+	RANAP_GERAN_BSC_Container_decode_xer,
+	RANAP_GERAN_BSC_Container_encode_xer,
+	RANAP_GERAN_BSC_Container_decode_uper,
+	RANAP_GERAN_BSC_Container_encode_uper,
+	RANAP_GERAN_BSC_Container_decode_aper,
+	RANAP_GERAN_BSC_Container_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GERAN_BSC_Container_tags_1,
+	sizeof(asn_DEF_RANAP_GERAN_BSC_Container_tags_1)
+		/sizeof(asn_DEF_RANAP_GERAN_BSC_Container_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GERAN_BSC_Container_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GERAN_BSC_Container_tags_1)
+		/sizeof(asn_DEF_RANAP_GERAN_BSC_Container_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_GERAN-BSC-Container.h b/src/ranap/RANAP_GERAN-BSC-Container.h
new file mode 100644
index 0000000..920b279
--- /dev/null
+++ b/src/ranap/RANAP_GERAN-BSC-Container.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GERAN_BSC_Container_H_
+#define	_RANAP_GERAN_BSC_Container_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GERAN-BSC-Container */
+typedef OCTET_STRING_t	 RANAP_GERAN_BSC_Container_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GERAN_BSC_Container;
+asn_struct_free_f RANAP_GERAN_BSC_Container_free;
+asn_struct_print_f RANAP_GERAN_BSC_Container_print;
+asn_constr_check_f RANAP_GERAN_BSC_Container_constraint;
+ber_type_decoder_f RANAP_GERAN_BSC_Container_decode_ber;
+der_type_encoder_f RANAP_GERAN_BSC_Container_encode_der;
+xer_type_decoder_f RANAP_GERAN_BSC_Container_decode_xer;
+xer_type_encoder_f RANAP_GERAN_BSC_Container_encode_xer;
+per_type_decoder_f RANAP_GERAN_BSC_Container_decode_uper;
+per_type_encoder_f RANAP_GERAN_BSC_Container_encode_uper;
+per_type_decoder_f RANAP_GERAN_BSC_Container_decode_aper;
+per_type_encoder_f RANAP_GERAN_BSC_Container_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GERAN_BSC_Container_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GERAN-Cell-ID.c b/src/ranap/RANAP_GERAN-Cell-ID.c
new file mode 100644
index 0000000..e69cd12
--- /dev/null
+++ b/src/ranap/RANAP_GERAN-Cell-ID.c
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GERAN-Cell-ID.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_GERAN_Cell_ID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GERAN_Cell_ID, lAI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_LAI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"lAI"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GERAN_Cell_ID, rAC),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RAC,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rAC"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GERAN_Cell_ID, cI),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"cI"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_GERAN_Cell_ID, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_GERAN_Cell_ID_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_RANAP_GERAN_Cell_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_GERAN_Cell_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lAI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rAC */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cI */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_GERAN_Cell_ID_specs_1 = {
+	sizeof(struct RANAP_GERAN_Cell_ID),
+	offsetof(struct RANAP_GERAN_Cell_ID, _asn_ctx),
+	asn_MAP_RANAP_GERAN_Cell_ID_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_GERAN_Cell_ID_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GERAN_Cell_ID = {
+	"RANAP_GERAN-Cell-ID",
+	"RANAP_GERAN-Cell-ID",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GERAN_Cell_ID_tags_1,
+	sizeof(asn_DEF_RANAP_GERAN_Cell_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_GERAN_Cell_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GERAN_Cell_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GERAN_Cell_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_GERAN_Cell_ID_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_GERAN_Cell_ID_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_GERAN_Cell_ID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_GERAN-Cell-ID.h b/src/ranap/RANAP_GERAN-Cell-ID.h
new file mode 100644
index 0000000..026dde0
--- /dev/null
+++ b/src/ranap/RANAP_GERAN-Cell-ID.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GERAN_Cell_ID_H_
+#define	_RANAP_GERAN_Cell_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_LAI.h"
+#include "RANAP_RAC.h"
+#include "RANAP_CI.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GERAN-Cell-ID */
+typedef struct RANAP_GERAN_Cell_ID {
+	RANAP_LAI_t	 lAI;
+	RANAP_RAC_t	 rAC;
+	RANAP_CI_t	 cI;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_GERAN_Cell_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GERAN_Cell_ID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GERAN_Cell_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GERAN-Classmark.c b/src/ranap/RANAP_GERAN-Classmark.c
new file mode 100644
index 0000000..8eb85e2
--- /dev/null
+++ b/src/ranap/RANAP_GERAN-Classmark.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GERAN-Classmark.h"
+
+int
+RANAP_GERAN_Classmark_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_GERAN_Classmark_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_GERAN_Classmark_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_GERAN_Classmark_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_GERAN_Classmark_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_GERAN_Classmark_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_GERAN_Classmark_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_GERAN_Classmark_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_GERAN_Classmark_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_GERAN_Classmark_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_GERAN_Classmark_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_GERAN_Classmark_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_GERAN_Classmark_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_GERAN_Classmark_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_GERAN_Classmark_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_GERAN_Classmark_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_GERAN_Classmark_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_GERAN_Classmark_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_GERAN_Classmark_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_GERAN_Classmark_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_GERAN_Classmark_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_GERAN_Classmark_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_GERAN_Classmark_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GERAN_Classmark = {
+	"RANAP_GERAN-Classmark",
+	"RANAP_GERAN-Classmark",
+	RANAP_GERAN_Classmark_free,
+	RANAP_GERAN_Classmark_print,
+	RANAP_GERAN_Classmark_constraint,
+	RANAP_GERAN_Classmark_decode_ber,
+	RANAP_GERAN_Classmark_encode_der,
+	RANAP_GERAN_Classmark_decode_xer,
+	RANAP_GERAN_Classmark_encode_xer,
+	RANAP_GERAN_Classmark_decode_uper,
+	RANAP_GERAN_Classmark_encode_uper,
+	RANAP_GERAN_Classmark_decode_aper,
+	RANAP_GERAN_Classmark_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GERAN_Classmark_tags_1,
+	sizeof(asn_DEF_RANAP_GERAN_Classmark_tags_1)
+		/sizeof(asn_DEF_RANAP_GERAN_Classmark_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GERAN_Classmark_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GERAN_Classmark_tags_1)
+		/sizeof(asn_DEF_RANAP_GERAN_Classmark_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_GERAN-Classmark.h b/src/ranap/RANAP_GERAN-Classmark.h
new file mode 100644
index 0000000..8de744b
--- /dev/null
+++ b/src/ranap/RANAP_GERAN-Classmark.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GERAN_Classmark_H_
+#define	_RANAP_GERAN_Classmark_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GERAN-Classmark */
+typedef OCTET_STRING_t	 RANAP_GERAN_Classmark_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GERAN_Classmark;
+asn_struct_free_f RANAP_GERAN_Classmark_free;
+asn_struct_print_f RANAP_GERAN_Classmark_print;
+asn_constr_check_f RANAP_GERAN_Classmark_constraint;
+ber_type_decoder_f RANAP_GERAN_Classmark_decode_ber;
+der_type_encoder_f RANAP_GERAN_Classmark_encode_der;
+xer_type_decoder_f RANAP_GERAN_Classmark_decode_xer;
+xer_type_encoder_f RANAP_GERAN_Classmark_encode_xer;
+per_type_decoder_f RANAP_GERAN_Classmark_decode_uper;
+per_type_encoder_f RANAP_GERAN_Classmark_encode_uper;
+per_type_decoder_f RANAP_GERAN_Classmark_decode_aper;
+per_type_encoder_f RANAP_GERAN_Classmark_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GERAN_Classmark_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GTP-TEI.c b/src/ranap/RANAP_GTP-TEI.c
new file mode 100644
index 0000000..7901aff
--- /dev/null
+++ b/src/ranap/RANAP_GTP-TEI.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GTP-TEI.h"
+
+int
+RANAP_GTP_TEI_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 4l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_GTP_TEI_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_GTP_TEI_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_GTP_TEI_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_GTP_TEI_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_GTP_TEI_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_GTP_TEI_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_GTP_TEI_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_GTP_TEI_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_GTP_TEI_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_GTP_TEI_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_GTP_TEI_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_GTP_TEI_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_GTP_TEI_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_GTP_TEI_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_GTP_TEI_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_GTP_TEI_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_GTP_TEI_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_GTP_TEI_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_GTP_TEI_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_GTP_TEI_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_GTP_TEI_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_GTP_TEI_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  4l,  4l }	/* (SIZE(4..4)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_GTP_TEI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GTP_TEI = {
+	"RANAP_GTP-TEI",
+	"RANAP_GTP-TEI",
+	RANAP_GTP_TEI_free,
+	RANAP_GTP_TEI_print,
+	RANAP_GTP_TEI_constraint,
+	RANAP_GTP_TEI_decode_ber,
+	RANAP_GTP_TEI_encode_der,
+	RANAP_GTP_TEI_decode_xer,
+	RANAP_GTP_TEI_encode_xer,
+	RANAP_GTP_TEI_decode_uper,
+	RANAP_GTP_TEI_encode_uper,
+	RANAP_GTP_TEI_decode_aper,
+	RANAP_GTP_TEI_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GTP_TEI_tags_1,
+	sizeof(asn_DEF_RANAP_GTP_TEI_tags_1)
+		/sizeof(asn_DEF_RANAP_GTP_TEI_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GTP_TEI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GTP_TEI_tags_1)
+		/sizeof(asn_DEF_RANAP_GTP_TEI_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_GTP_TEI_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_GTP-TEI.h b/src/ranap/RANAP_GTP-TEI.h
new file mode 100644
index 0000000..01382e0
--- /dev/null
+++ b/src/ranap/RANAP_GTP-TEI.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GTP_TEI_H_
+#define	_RANAP_GTP_TEI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GTP-TEI */
+typedef OCTET_STRING_t	 RANAP_GTP_TEI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GTP_TEI;
+asn_struct_free_f RANAP_GTP_TEI_free;
+asn_struct_print_f RANAP_GTP_TEI_print;
+asn_constr_check_f RANAP_GTP_TEI_constraint;
+ber_type_decoder_f RANAP_GTP_TEI_decode_ber;
+der_type_encoder_f RANAP_GTP_TEI_encode_der;
+xer_type_decoder_f RANAP_GTP_TEI_decode_xer;
+xer_type_encoder_f RANAP_GTP_TEI_encode_xer;
+per_type_decoder_f RANAP_GTP_TEI_decode_uper;
+per_type_encoder_f RANAP_GTP_TEI_encode_uper;
+per_type_decoder_f RANAP_GTP_TEI_decode_aper;
+per_type_encoder_f RANAP_GTP_TEI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GTP_TEI_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GeographicalArea.c b/src/ranap/RANAP_GeographicalArea.c
new file mode 100644
index 0000000..eba4572
--- /dev/null
+++ b/src/ranap/RANAP_GeographicalArea.c
@@ -0,0 +1,122 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GeographicalArea.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_GeographicalArea_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  2l }	/* (0..2,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_GeographicalArea_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GeographicalArea, choice.point),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GA_Point,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"point"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GeographicalArea, choice.pointWithUnCertainty),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GA_PointWithUnCertainty,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pointWithUnCertainty"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GeographicalArea, choice.polygon),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GA_Polygon,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"polygon"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GeographicalArea, choice.pointWithUncertaintyEllipse),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GA_PointWithUnCertaintyEllipse,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pointWithUncertaintyEllipse"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GeographicalArea, choice.pointWithAltitude),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GA_PointWithAltitude,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pointWithAltitude"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GeographicalArea, choice.pointWithAltitudeAndUncertaintyEllipsoid),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pointWithAltitudeAndUncertaintyEllipsoid"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GeographicalArea, choice.ellipsoidArc),
+		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GA_EllipsoidArc,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"ellipsoidArc"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_GeographicalArea_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* point */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pointWithUnCertainty */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* polygon */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* pointWithUncertaintyEllipse */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pointWithAltitude */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* pointWithAltitudeAndUncertaintyEllipsoid */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* ellipsoidArc */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_GeographicalArea_specs_1 = {
+	sizeof(struct RANAP_GeographicalArea),
+	offsetof(struct RANAP_GeographicalArea, _asn_ctx),
+	offsetof(struct RANAP_GeographicalArea, present),
+	sizeof(((struct RANAP_GeographicalArea *)0)->present),
+	asn_MAP_RANAP_GeographicalArea_tag2el_1,
+	7,	/* Count of tags in the map */
+	0,
+	3	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GeographicalArea = {
+	"RANAP_GeographicalArea",
+	"RANAP_GeographicalArea",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_GeographicalArea_constr_1,
+	asn_MBR_RANAP_GeographicalArea_1,
+	7,	/* Elements count */
+	&asn_SPC_RANAP_GeographicalArea_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_GeographicalArea.h b/src/ranap/RANAP_GeographicalArea.h
new file mode 100644
index 0000000..930c9f6
--- /dev/null
+++ b/src/ranap/RANAP_GeographicalArea.h
@@ -0,0 +1,69 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GeographicalArea_H_
+#define	_RANAP_GeographicalArea_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_GA-Point.h"
+#include "RANAP_GA-PointWithUnCertainty.h"
+#include "RANAP_GA-Polygon.h"
+#include "RANAP_GA-PointWithUnCertaintyEllipse.h"
+#include "RANAP_GA-PointWithAltitude.h"
+#include "RANAP_GA-PointWithAltitudeAndUncertaintyEllipsoid.h"
+#include "RANAP_GA-EllipsoidArc.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_GeographicalArea_PR {
+	RANAP_GeographicalArea_PR_NOTHING,	/* No components present */
+	RANAP_GeographicalArea_PR_point,
+	RANAP_GeographicalArea_PR_pointWithUnCertainty,
+	RANAP_GeographicalArea_PR_polygon,
+	/* Extensions may appear below */
+	RANAP_GeographicalArea_PR_pointWithUncertaintyEllipse,
+	RANAP_GeographicalArea_PR_pointWithAltitude,
+	RANAP_GeographicalArea_PR_pointWithAltitudeAndUncertaintyEllipsoid,
+	RANAP_GeographicalArea_PR_ellipsoidArc
+} RANAP_GeographicalArea_PR;
+
+/* RANAP_GeographicalArea */
+typedef struct RANAP_GeographicalArea {
+	RANAP_GeographicalArea_PR present;
+	union RANAP_GeographicalArea_u {
+		RANAP_GA_Point_t	 point;
+		RANAP_GA_PointWithUnCertainty_t	 pointWithUnCertainty;
+		RANAP_GA_Polygon_t	 polygon;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+		RANAP_GA_PointWithUnCertaintyEllipse_t	 pointWithUncertaintyEllipse;
+		RANAP_GA_PointWithAltitude_t	 pointWithAltitude;
+		RANAP_GA_PointWithAltitudeAndUncertaintyEllipsoid_t	 pointWithAltitudeAndUncertaintyEllipsoid;
+		RANAP_GA_EllipsoidArc_t	 ellipsoidArc;
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_GeographicalArea_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GeographicalArea;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GeographicalArea_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GeographicalCoordinates.c b/src/ranap/RANAP_GeographicalCoordinates.c
new file mode 100644
index 0000000..57f391e
--- /dev/null
+++ b/src/ranap/RANAP_GeographicalCoordinates.c
@@ -0,0 +1,312 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GeographicalCoordinates.h"
+
+static int
+latitudeSign_2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+latitudeSign_2_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+static void
+latitudeSign_2_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	latitudeSign_2_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+static int
+latitudeSign_2_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	latitudeSign_2_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+static asn_dec_rval_t
+latitudeSign_2_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	latitudeSign_2_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+static asn_enc_rval_t
+latitudeSign_2_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	latitudeSign_2_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+static asn_dec_rval_t
+latitudeSign_2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	latitudeSign_2_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+static asn_enc_rval_t
+latitudeSign_2_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	latitudeSign_2_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+static asn_dec_rval_t
+latitudeSign_2_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	latitudeSign_2_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_enc_rval_t
+latitudeSign_2_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	latitudeSign_2_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_enc_rval_t
+latitudeSign_2_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	latitudeSign_2_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_dec_rval_t
+latitudeSign_2_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	latitudeSign_2_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static int
+memb_latitude_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 8388607l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_longitude_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= -8388608ull && value <= 8388607l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_latitudeSign_constr_2 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 1,  1,  0l,  1l }	/* (0..1) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_latitude_constr_5 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 23, -1,  0l,  8388607l }	/* (0..8388607) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_longitude_constr_6 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 24, -1, -8388608ull,  8388607l }	/* (-8388608..8388607) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_latitudeSign_value2enum_2[] = {
+	{ 0,	5,	"north" },
+	{ 1,	5,	"south" }
+};
+static const unsigned int asn_MAP_latitudeSign_enum2value_2[] = {
+	0,	/* north(0) */
+	1	/* south(1) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_latitudeSign_specs_2 = {
+	asn_MAP_latitudeSign_value2enum_2,	/* "tag" => N; sorted by tag */
+	asn_MAP_latitudeSign_enum2value_2,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_latitudeSign_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_latitudeSign_2 = {
+	"latitudeSign",
+	"latitudeSign",
+	latitudeSign_2_free,
+	latitudeSign_2_print,
+	latitudeSign_2_constraint,
+	latitudeSign_2_decode_ber,
+	latitudeSign_2_encode_der,
+	latitudeSign_2_decode_xer,
+	latitudeSign_2_encode_xer,
+	latitudeSign_2_decode_uper,
+	latitudeSign_2_encode_uper,
+	latitudeSign_2_decode_aper,
+	latitudeSign_2_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_latitudeSign_tags_2,
+	sizeof(asn_DEF_latitudeSign_tags_2)
+		/sizeof(asn_DEF_latitudeSign_tags_2[0]) - 1, /* 1 */
+	asn_DEF_latitudeSign_tags_2,	/* Same as above */
+	sizeof(asn_DEF_latitudeSign_tags_2)
+		/sizeof(asn_DEF_latitudeSign_tags_2[0]), /* 2 */
+	&asn_PER_type_latitudeSign_constr_2,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_latitudeSign_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_GeographicalCoordinates_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GeographicalCoordinates, latitudeSign),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_latitudeSign_2,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"latitudeSign"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GeographicalCoordinates, latitude),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_latitude_constraint_1,
+		&asn_PER_memb_latitude_constr_5,
+		0,
+		"latitude"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GeographicalCoordinates, longitude),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_longitude_constraint_1,
+		&asn_PER_memb_longitude_constr_6,
+		0,
+		"longitude"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_GeographicalCoordinates, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_GeographicalCoordinates_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_RANAP_GeographicalCoordinates_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_GeographicalCoordinates_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitudeSign */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* latitude */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* longitude */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_GeographicalCoordinates_specs_1 = {
+	sizeof(struct RANAP_GeographicalCoordinates),
+	offsetof(struct RANAP_GeographicalCoordinates, _asn_ctx),
+	asn_MAP_RANAP_GeographicalCoordinates_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_GeographicalCoordinates_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	3,	/* Start extensions */
+	5	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GeographicalCoordinates = {
+	"RANAP_GeographicalCoordinates",
+	"RANAP_GeographicalCoordinates",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GeographicalCoordinates_tags_1,
+	sizeof(asn_DEF_RANAP_GeographicalCoordinates_tags_1)
+		/sizeof(asn_DEF_RANAP_GeographicalCoordinates_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GeographicalCoordinates_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GeographicalCoordinates_tags_1)
+		/sizeof(asn_DEF_RANAP_GeographicalCoordinates_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_GeographicalCoordinates_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_GeographicalCoordinates_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_GeographicalCoordinates.h b/src/ranap/RANAP_GeographicalCoordinates.h
new file mode 100644
index 0000000..8f3d911
--- /dev/null
+++ b/src/ranap/RANAP_GeographicalCoordinates.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GeographicalCoordinates_H_
+#define	_RANAP_GeographicalCoordinates_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+#include <NativeInteger.h>
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum latitudeSign {
+	latitudeSign_north	= 0,
+	latitudeSign_south	= 1
+} e_latitudeSign;
+
+/* RANAP_GeographicalCoordinates */
+typedef struct RANAP_GeographicalCoordinates {
+	long	 latitudeSign;
+	long	 latitude;
+	long	 longitude;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_GeographicalCoordinates_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_latitudeSign_2;	// (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GeographicalCoordinates;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GeographicalCoordinates_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GlobalCN-ID.c b/src/ranap/RANAP_GlobalCN-ID.c
new file mode 100644
index 0000000..e83f7eb
--- /dev/null
+++ b/src/ranap/RANAP_GlobalCN-ID.c
@@ -0,0 +1,71 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GlobalCN-ID.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_GlobalCN_ID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GlobalCN_ID, pLMNidentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PLMNidentity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pLMNidentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GlobalCN_ID, cN_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CN_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"cN-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_GlobalCN_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_GlobalCN_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cN-ID */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_GlobalCN_ID_specs_1 = {
+	sizeof(struct RANAP_GlobalCN_ID),
+	offsetof(struct RANAP_GlobalCN_ID, _asn_ctx),
+	asn_MAP_RANAP_GlobalCN_ID_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GlobalCN_ID = {
+	"RANAP_GlobalCN-ID",
+	"RANAP_GlobalCN-ID",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GlobalCN_ID_tags_1,
+	sizeof(asn_DEF_RANAP_GlobalCN_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_GlobalCN_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GlobalCN_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GlobalCN_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_GlobalCN_ID_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_GlobalCN_ID_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_GlobalCN_ID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_GlobalCN-ID.h b/src/ranap/RANAP_GlobalCN-ID.h
new file mode 100644
index 0000000..4428af6
--- /dev/null
+++ b/src/ranap/RANAP_GlobalCN-ID.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GlobalCN_ID_H_
+#define	_RANAP_GlobalCN_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PLMNidentity.h"
+#include "RANAP_CN-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GlobalCN-ID */
+typedef struct RANAP_GlobalCN_ID {
+	RANAP_PLMNidentity_t	 pLMNidentity;
+	RANAP_CN_ID_t	 cN_ID;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_GlobalCN_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GlobalCN_ID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GlobalCN_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GlobalRNC-ID.c b/src/ranap/RANAP_GlobalRNC-ID.c
new file mode 100644
index 0000000..eff248e
--- /dev/null
+++ b/src/ranap/RANAP_GlobalRNC-ID.c
@@ -0,0 +1,71 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GlobalRNC-ID.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_GlobalRNC_ID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GlobalRNC_ID, pLMNidentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PLMNidentity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pLMNidentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GlobalRNC_ID, rNC_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RNC_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rNC-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_GlobalRNC_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_GlobalRNC_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rNC-ID */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_GlobalRNC_ID_specs_1 = {
+	sizeof(struct RANAP_GlobalRNC_ID),
+	offsetof(struct RANAP_GlobalRNC_ID, _asn_ctx),
+	asn_MAP_RANAP_GlobalRNC_ID_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GlobalRNC_ID = {
+	"RANAP_GlobalRNC-ID",
+	"RANAP_GlobalRNC-ID",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GlobalRNC_ID_tags_1,
+	sizeof(asn_DEF_RANAP_GlobalRNC_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_GlobalRNC_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GlobalRNC_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GlobalRNC_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_GlobalRNC_ID_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_GlobalRNC_ID_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_GlobalRNC_ID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_GlobalRNC-ID.h b/src/ranap/RANAP_GlobalRNC-ID.h
new file mode 100644
index 0000000..60bc53e
--- /dev/null
+++ b/src/ranap/RANAP_GlobalRNC-ID.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GlobalRNC_ID_H_
+#define	_RANAP_GlobalRNC_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PLMNidentity.h"
+#include "RANAP_RNC-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GlobalRNC-ID */
+typedef struct RANAP_GlobalRNC_ID {
+	RANAP_PLMNidentity_t	 pLMNidentity;
+	RANAP_RNC_ID_t	 rNC_ID;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_GlobalRNC_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GlobalRNC_ID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GlobalRNC_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_GuaranteedBitrate.c b/src/ranap/RANAP_GuaranteedBitrate.c
new file mode 100644
index 0000000..4524f48
--- /dev/null
+++ b/src/ranap/RANAP_GuaranteedBitrate.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GuaranteedBitrate.h"
+
+int
+RANAP_GuaranteedBitrate_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 16000000l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_GuaranteedBitrate_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_GuaranteedBitrate_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_GuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_GuaranteedBitrate_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_GuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_GuaranteedBitrate_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_GuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_GuaranteedBitrate_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_GuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_GuaranteedBitrate_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_GuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_GuaranteedBitrate_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_GuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_GuaranteedBitrate_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_GuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_GuaranteedBitrate_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_GuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_GuaranteedBitrate_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_GuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_GuaranteedBitrate_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_GuaranteedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_GuaranteedBitrate_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 24, -1,  0l,  16000000l }	/* (0..16000000) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_GuaranteedBitrate_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GuaranteedBitrate = {
+	"RANAP_GuaranteedBitrate",
+	"RANAP_GuaranteedBitrate",
+	RANAP_GuaranteedBitrate_free,
+	RANAP_GuaranteedBitrate_print,
+	RANAP_GuaranteedBitrate_constraint,
+	RANAP_GuaranteedBitrate_decode_ber,
+	RANAP_GuaranteedBitrate_encode_der,
+	RANAP_GuaranteedBitrate_decode_xer,
+	RANAP_GuaranteedBitrate_encode_xer,
+	RANAP_GuaranteedBitrate_decode_uper,
+	RANAP_GuaranteedBitrate_encode_uper,
+	RANAP_GuaranteedBitrate_decode_aper,
+	RANAP_GuaranteedBitrate_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_GuaranteedBitrate_tags_1,
+	sizeof(asn_DEF_RANAP_GuaranteedBitrate_tags_1)
+		/sizeof(asn_DEF_RANAP_GuaranteedBitrate_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GuaranteedBitrate_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GuaranteedBitrate_tags_1)
+		/sizeof(asn_DEF_RANAP_GuaranteedBitrate_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_GuaranteedBitrate_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_GuaranteedBitrate.h b/src/ranap/RANAP_GuaranteedBitrate.h
new file mode 100644
index 0000000..bc3bf0a
--- /dev/null
+++ b/src/ranap/RANAP_GuaranteedBitrate.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_GuaranteedBitrate_H_
+#define	_RANAP_GuaranteedBitrate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_GuaranteedBitrate */
+typedef long	 RANAP_GuaranteedBitrate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_GuaranteedBitrate;
+asn_struct_free_f RANAP_GuaranteedBitrate_free;
+asn_struct_print_f RANAP_GuaranteedBitrate_print;
+asn_constr_check_f RANAP_GuaranteedBitrate_constraint;
+ber_type_decoder_f RANAP_GuaranteedBitrate_decode_ber;
+der_type_encoder_f RANAP_GuaranteedBitrate_encode_der;
+xer_type_decoder_f RANAP_GuaranteedBitrate_decode_xer;
+xer_type_encoder_f RANAP_GuaranteedBitrate_encode_xer;
+per_type_decoder_f RANAP_GuaranteedBitrate_decode_uper;
+per_type_encoder_f RANAP_GuaranteedBitrate_encode_uper;
+per_type_decoder_f RANAP_GuaranteedBitrate_decode_aper;
+per_type_encoder_f RANAP_GuaranteedBitrate_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_GuaranteedBitrate_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_HS-DSCH-MAC-d-Flow-ID.c b/src/ranap/RANAP_HS-DSCH-MAC-d-Flow-ID.c
new file mode 100644
index 0000000..00112ba
--- /dev/null
+++ b/src/ranap/RANAP_HS-DSCH-MAC-d-Flow-ID.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_HS-DSCH-MAC-d-Flow-ID.h"
+
+int
+RANAP_HS_DSCH_MAC_d_Flow_ID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 7l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_HS_DSCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_HS_DSCH_MAC_d_Flow_ID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_HS_DSCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_HS_DSCH_MAC_d_Flow_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_HS_DSCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_HS_DSCH_MAC_d_Flow_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_HS_DSCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_HS_DSCH_MAC_d_Flow_ID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_HS_DSCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_HS_DSCH_MAC_d_Flow_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_HS_DSCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_HS_DSCH_MAC_d_Flow_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_HS_DSCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_HS_DSCH_MAC_d_Flow_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_HS_DSCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_HS_DSCH_MAC_d_Flow_ID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_HS_DSCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_HS_DSCH_MAC_d_Flow_ID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_HS_DSCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_HS_DSCH_MAC_d_Flow_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_HS_DSCH_MAC_d_Flow_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_HS_DSCH_MAC_d_Flow_ID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 3,  3,  0l,  7l }	/* (0..7) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_HS_DSCH_MAC_d_Flow_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_HS_DSCH_MAC_d_Flow_ID = {
+	"RANAP_HS-DSCH-MAC-d-Flow-ID",
+	"RANAP_HS-DSCH-MAC-d-Flow-ID",
+	RANAP_HS_DSCH_MAC_d_Flow_ID_free,
+	RANAP_HS_DSCH_MAC_d_Flow_ID_print,
+	RANAP_HS_DSCH_MAC_d_Flow_ID_constraint,
+	RANAP_HS_DSCH_MAC_d_Flow_ID_decode_ber,
+	RANAP_HS_DSCH_MAC_d_Flow_ID_encode_der,
+	RANAP_HS_DSCH_MAC_d_Flow_ID_decode_xer,
+	RANAP_HS_DSCH_MAC_d_Flow_ID_encode_xer,
+	RANAP_HS_DSCH_MAC_d_Flow_ID_decode_uper,
+	RANAP_HS_DSCH_MAC_d_Flow_ID_encode_uper,
+	RANAP_HS_DSCH_MAC_d_Flow_ID_decode_aper,
+	RANAP_HS_DSCH_MAC_d_Flow_ID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_HS_DSCH_MAC_d_Flow_ID_tags_1,
+	sizeof(asn_DEF_RANAP_HS_DSCH_MAC_d_Flow_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_HS_DSCH_MAC_d_Flow_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_HS_DSCH_MAC_d_Flow_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_HS_DSCH_MAC_d_Flow_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_HS_DSCH_MAC_d_Flow_ID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_HS_DSCH_MAC_d_Flow_ID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_HS-DSCH-MAC-d-Flow-ID.h b/src/ranap/RANAP_HS-DSCH-MAC-d-Flow-ID.h
new file mode 100644
index 0000000..1364acd
--- /dev/null
+++ b/src/ranap/RANAP_HS-DSCH-MAC-d-Flow-ID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_HS_DSCH_MAC_d_Flow_ID_H_
+#define	_RANAP_HS_DSCH_MAC_d_Flow_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_HS-DSCH-MAC-d-Flow-ID */
+typedef long	 RANAP_HS_DSCH_MAC_d_Flow_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_HS_DSCH_MAC_d_Flow_ID;
+asn_struct_free_f RANAP_HS_DSCH_MAC_d_Flow_ID_free;
+asn_struct_print_f RANAP_HS_DSCH_MAC_d_Flow_ID_print;
+asn_constr_check_f RANAP_HS_DSCH_MAC_d_Flow_ID_constraint;
+ber_type_decoder_f RANAP_HS_DSCH_MAC_d_Flow_ID_decode_ber;
+der_type_encoder_f RANAP_HS_DSCH_MAC_d_Flow_ID_encode_der;
+xer_type_decoder_f RANAP_HS_DSCH_MAC_d_Flow_ID_decode_xer;
+xer_type_encoder_f RANAP_HS_DSCH_MAC_d_Flow_ID_encode_xer;
+per_type_decoder_f RANAP_HS_DSCH_MAC_d_Flow_ID_decode_uper;
+per_type_encoder_f RANAP_HS_DSCH_MAC_d_Flow_ID_encode_uper;
+per_type_decoder_f RANAP_HS_DSCH_MAC_d_Flow_ID_decode_aper;
+per_type_encoder_f RANAP_HS_DSCH_MAC_d_Flow_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_HS_DSCH_MAC_d_Flow_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_HigherBitratesThan16MbpsFlag.c b/src/ranap/RANAP_HigherBitratesThan16MbpsFlag.c
new file mode 100644
index 0000000..a3fc106
--- /dev/null
+++ b/src/ranap/RANAP_HigherBitratesThan16MbpsFlag.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_HigherBitratesThan16MbpsFlag.h"
+
+int
+RANAP_HigherBitratesThan16MbpsFlag_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_HigherBitratesThan16MbpsFlag_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_HigherBitratesThan16MbpsFlag_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_HigherBitratesThan16MbpsFlag_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_HigherBitratesThan16MbpsFlag_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_HigherBitratesThan16MbpsFlag_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_HigherBitratesThan16MbpsFlag_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_HigherBitratesThan16MbpsFlag_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_HigherBitratesThan16MbpsFlag_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_HigherBitratesThan16MbpsFlag_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_HigherBitratesThan16MbpsFlag_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_HigherBitratesThan16MbpsFlag_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_HigherBitratesThan16MbpsFlag_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_HigherBitratesThan16MbpsFlag_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_HigherBitratesThan16MbpsFlag_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_HigherBitratesThan16MbpsFlag_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_HigherBitratesThan16MbpsFlag_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_HigherBitratesThan16MbpsFlag_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_HigherBitratesThan16MbpsFlag_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_HigherBitratesThan16MbpsFlag_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_HigherBitratesThan16MbpsFlag_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_HigherBitratesThan16MbpsFlag_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_HigherBitratesThan16MbpsFlag_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_HigherBitratesThan16MbpsFlag_value2enum_1[] = {
+	{ 0,	7,	"allowed" },
+	{ 1,	11,	"not-allowed" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_HigherBitratesThan16MbpsFlag_enum2value_1[] = {
+	0,	/* allowed(0) */
+	1	/* not-allowed(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_HigherBitratesThan16MbpsFlag_specs_1 = {
+	asn_MAP_RANAP_HigherBitratesThan16MbpsFlag_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_HigherBitratesThan16MbpsFlag_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_HigherBitratesThan16MbpsFlag_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_HigherBitratesThan16MbpsFlag = {
+	"RANAP_HigherBitratesThan16MbpsFlag",
+	"RANAP_HigherBitratesThan16MbpsFlag",
+	RANAP_HigherBitratesThan16MbpsFlag_free,
+	RANAP_HigherBitratesThan16MbpsFlag_print,
+	RANAP_HigherBitratesThan16MbpsFlag_constraint,
+	RANAP_HigherBitratesThan16MbpsFlag_decode_ber,
+	RANAP_HigherBitratesThan16MbpsFlag_encode_der,
+	RANAP_HigherBitratesThan16MbpsFlag_decode_xer,
+	RANAP_HigherBitratesThan16MbpsFlag_encode_xer,
+	RANAP_HigherBitratesThan16MbpsFlag_decode_uper,
+	RANAP_HigherBitratesThan16MbpsFlag_encode_uper,
+	RANAP_HigherBitratesThan16MbpsFlag_decode_aper,
+	RANAP_HigherBitratesThan16MbpsFlag_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_HigherBitratesThan16MbpsFlag_tags_1,
+	sizeof(asn_DEF_RANAP_HigherBitratesThan16MbpsFlag_tags_1)
+		/sizeof(asn_DEF_RANAP_HigherBitratesThan16MbpsFlag_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_HigherBitratesThan16MbpsFlag_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_HigherBitratesThan16MbpsFlag_tags_1)
+		/sizeof(asn_DEF_RANAP_HigherBitratesThan16MbpsFlag_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_HigherBitratesThan16MbpsFlag_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_HigherBitratesThan16MbpsFlag_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_HigherBitratesThan16MbpsFlag.h b/src/ranap/RANAP_HigherBitratesThan16MbpsFlag.h
new file mode 100644
index 0000000..19dc7b4
--- /dev/null
+++ b/src/ranap/RANAP_HigherBitratesThan16MbpsFlag.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_HigherBitratesThan16MbpsFlag_H_
+#define	_RANAP_HigherBitratesThan16MbpsFlag_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_HigherBitratesThan16MbpsFlag {
+	RANAP_HigherBitratesThan16MbpsFlag_allowed	= 0,
+	RANAP_HigherBitratesThan16MbpsFlag_not_allowed	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_HigherBitratesThan16MbpsFlag;
+
+/* RANAP_HigherBitratesThan16MbpsFlag */
+typedef long	 RANAP_HigherBitratesThan16MbpsFlag_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_HigherBitratesThan16MbpsFlag;
+asn_struct_free_f RANAP_HigherBitratesThan16MbpsFlag_free;
+asn_struct_print_f RANAP_HigherBitratesThan16MbpsFlag_print;
+asn_constr_check_f RANAP_HigherBitratesThan16MbpsFlag_constraint;
+ber_type_decoder_f RANAP_HigherBitratesThan16MbpsFlag_decode_ber;
+der_type_encoder_f RANAP_HigherBitratesThan16MbpsFlag_encode_der;
+xer_type_decoder_f RANAP_HigherBitratesThan16MbpsFlag_decode_xer;
+xer_type_encoder_f RANAP_HigherBitratesThan16MbpsFlag_encode_xer;
+per_type_decoder_f RANAP_HigherBitratesThan16MbpsFlag_decode_uper;
+per_type_encoder_f RANAP_HigherBitratesThan16MbpsFlag_encode_uper;
+per_type_decoder_f RANAP_HigherBitratesThan16MbpsFlag_decode_aper;
+per_type_encoder_f RANAP_HigherBitratesThan16MbpsFlag_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_HigherBitratesThan16MbpsFlag_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_HorizontalSpeedAndBearing.c b/src/ranap/RANAP_HorizontalSpeedAndBearing.c
new file mode 100644
index 0000000..f952f54
--- /dev/null
+++ b/src/ranap/RANAP_HorizontalSpeedAndBearing.c
@@ -0,0 +1,131 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_HorizontalSpeedAndBearing.h"
+
+static int
+memb_bearing_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 359l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_horizontalSpeed_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 2047l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_bearing_constr_2 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 9,  9,  0l,  359l }	/* (0..359) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_horizontalSpeed_constr_3 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 11,  11,  0l,  2047l }	/* (0..2047) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_HorizontalSpeedAndBearing_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_HorizontalSpeedAndBearing, bearing),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_bearing_constraint_1,
+		&asn_PER_memb_bearing_constr_2,
+		0,
+		"bearing"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_HorizontalSpeedAndBearing, horizontalSpeed),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_horizontalSpeed_constraint_1,
+		&asn_PER_memb_horizontalSpeed_constr_3,
+		0,
+		"horizontalSpeed"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_HorizontalSpeedAndBearing_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_HorizontalSpeedAndBearing_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bearing */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* horizontalSpeed */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_HorizontalSpeedAndBearing_specs_1 = {
+	sizeof(struct RANAP_HorizontalSpeedAndBearing),
+	offsetof(struct RANAP_HorizontalSpeedAndBearing, _asn_ctx),
+	asn_MAP_RANAP_HorizontalSpeedAndBearing_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_HorizontalSpeedAndBearing = {
+	"RANAP_HorizontalSpeedAndBearing",
+	"RANAP_HorizontalSpeedAndBearing",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_HorizontalSpeedAndBearing_tags_1,
+	sizeof(asn_DEF_RANAP_HorizontalSpeedAndBearing_tags_1)
+		/sizeof(asn_DEF_RANAP_HorizontalSpeedAndBearing_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_HorizontalSpeedAndBearing_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_HorizontalSpeedAndBearing_tags_1)
+		/sizeof(asn_DEF_RANAP_HorizontalSpeedAndBearing_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_HorizontalSpeedAndBearing_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_HorizontalSpeedAndBearing_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_HorizontalSpeedAndBearing.h b/src/ranap/RANAP_HorizontalSpeedAndBearing.h
new file mode 100644
index 0000000..9800231
--- /dev/null
+++ b/src/ranap/RANAP_HorizontalSpeedAndBearing.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_HorizontalSpeedAndBearing_H_
+#define	_RANAP_HorizontalSpeedAndBearing_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_HorizontalSpeedAndBearing */
+typedef struct RANAP_HorizontalSpeedAndBearing {
+	long	 bearing;
+	long	 horizontalSpeed;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_HorizontalSpeedAndBearing_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_HorizontalSpeedAndBearing;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_HorizontalSpeedAndBearing_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_HorizontalVelocity.c b/src/ranap/RANAP_HorizontalVelocity.c
new file mode 100644
index 0000000..fd51800
--- /dev/null
+++ b/src/ranap/RANAP_HorizontalVelocity.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_HorizontalVelocity.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_HorizontalVelocity_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_HorizontalVelocity, horizontalSpeedAndBearing),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_HorizontalSpeedAndBearing,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"horizontalSpeedAndBearing"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_HorizontalVelocity, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_HorizontalVelocity_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_HorizontalVelocity_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_HorizontalVelocity_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* horizontalSpeedAndBearing */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_HorizontalVelocity_specs_1 = {
+	sizeof(struct RANAP_HorizontalVelocity),
+	offsetof(struct RANAP_HorizontalVelocity, _asn_ctx),
+	asn_MAP_RANAP_HorizontalVelocity_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_HorizontalVelocity_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_HorizontalVelocity = {
+	"RANAP_HorizontalVelocity",
+	"RANAP_HorizontalVelocity",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_HorizontalVelocity_tags_1,
+	sizeof(asn_DEF_RANAP_HorizontalVelocity_tags_1)
+		/sizeof(asn_DEF_RANAP_HorizontalVelocity_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_HorizontalVelocity_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_HorizontalVelocity_tags_1)
+		/sizeof(asn_DEF_RANAP_HorizontalVelocity_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_HorizontalVelocity_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_HorizontalVelocity_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_HorizontalVelocity.h b/src/ranap/RANAP_HorizontalVelocity.h
new file mode 100644
index 0000000..eb7b2e6
--- /dev/null
+++ b/src/ranap/RANAP_HorizontalVelocity.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_HorizontalVelocity_H_
+#define	_RANAP_HorizontalVelocity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_HorizontalSpeedAndBearing.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_HorizontalVelocity */
+typedef struct RANAP_HorizontalVelocity {
+	RANAP_HorizontalSpeedAndBearing_t	 horizontalSpeedAndBearing;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_HorizontalVelocity_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_HorizontalVelocity;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_HorizontalVelocity_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_HorizontalVelocityWithUncertainty.c b/src/ranap/RANAP_HorizontalVelocityWithUncertainty.c
new file mode 100644
index 0000000..12a53b2
--- /dev/null
+++ b/src/ranap/RANAP_HorizontalVelocityWithUncertainty.c
@@ -0,0 +1,113 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_HorizontalVelocityWithUncertainty.h"
+
+static int
+memb_uncertaintySpeed_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 255l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_uncertaintySpeed_constr_3 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  0l,  255l }	/* (0..255) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_HorizontalVelocityWithUncertainty_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_HorizontalVelocityWithUncertainty, horizontalSpeedAndBearing),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_HorizontalSpeedAndBearing,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"horizontalSpeedAndBearing"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_HorizontalVelocityWithUncertainty, uncertaintySpeed),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_uncertaintySpeed_constraint_1,
+		&asn_PER_memb_uncertaintySpeed_constr_3,
+		0,
+		"uncertaintySpeed"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_HorizontalVelocityWithUncertainty, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_HorizontalVelocityWithUncertainty_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_HorizontalVelocityWithUncertainty_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_HorizontalVelocityWithUncertainty_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* horizontalSpeedAndBearing */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uncertaintySpeed */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_HorizontalVelocityWithUncertainty_specs_1 = {
+	sizeof(struct RANAP_HorizontalVelocityWithUncertainty),
+	offsetof(struct RANAP_HorizontalVelocityWithUncertainty, _asn_ctx),
+	asn_MAP_RANAP_HorizontalVelocityWithUncertainty_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_HorizontalVelocityWithUncertainty_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_HorizontalVelocityWithUncertainty = {
+	"RANAP_HorizontalVelocityWithUncertainty",
+	"RANAP_HorizontalVelocityWithUncertainty",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_HorizontalVelocityWithUncertainty_tags_1,
+	sizeof(asn_DEF_RANAP_HorizontalVelocityWithUncertainty_tags_1)
+		/sizeof(asn_DEF_RANAP_HorizontalVelocityWithUncertainty_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_HorizontalVelocityWithUncertainty_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_HorizontalVelocityWithUncertainty_tags_1)
+		/sizeof(asn_DEF_RANAP_HorizontalVelocityWithUncertainty_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_HorizontalVelocityWithUncertainty_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_HorizontalVelocityWithUncertainty_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_HorizontalVelocityWithUncertainty.h b/src/ranap/RANAP_HorizontalVelocityWithUncertainty.h
new file mode 100644
index 0000000..af8d312
--- /dev/null
+++ b/src/ranap/RANAP_HorizontalVelocityWithUncertainty.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_HorizontalVelocityWithUncertainty_H_
+#define	_RANAP_HorizontalVelocityWithUncertainty_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_HorizontalSpeedAndBearing.h"
+#include <NativeInteger.h>
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_HorizontalVelocityWithUncertainty */
+typedef struct RANAP_HorizontalVelocityWithUncertainty {
+	RANAP_HorizontalSpeedAndBearing_t	 horizontalSpeedAndBearing;
+	long	 uncertaintySpeed;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_HorizontalVelocityWithUncertainty_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_HorizontalVelocityWithUncertainty;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_HorizontalVelocityWithUncertainty_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_HorizontalWithVerticalVelocity.c b/src/ranap/RANAP_HorizontalWithVerticalVelocity.c
new file mode 100644
index 0000000..bf3e129
--- /dev/null
+++ b/src/ranap/RANAP_HorizontalWithVerticalVelocity.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_HorizontalWithVerticalVelocity.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_HorizontalWithVerticalVelocity_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_HorizontalWithVerticalVelocity, horizontalSpeedAndBearing),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_HorizontalSpeedAndBearing,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"horizontalSpeedAndBearing"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_HorizontalWithVerticalVelocity, veritcalVelocity),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_VerticalVelocity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"veritcalVelocity"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_HorizontalWithVerticalVelocity, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_HorizontalWithVerticalVelocity_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_HorizontalWithVerticalVelocity_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_HorizontalWithVerticalVelocity_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* horizontalSpeedAndBearing */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* veritcalVelocity */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_HorizontalWithVerticalVelocity_specs_1 = {
+	sizeof(struct RANAP_HorizontalWithVerticalVelocity),
+	offsetof(struct RANAP_HorizontalWithVerticalVelocity, _asn_ctx),
+	asn_MAP_RANAP_HorizontalWithVerticalVelocity_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_HorizontalWithVerticalVelocity_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_HorizontalWithVerticalVelocity = {
+	"RANAP_HorizontalWithVerticalVelocity",
+	"RANAP_HorizontalWithVerticalVelocity",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_HorizontalWithVerticalVelocity_tags_1,
+	sizeof(asn_DEF_RANAP_HorizontalWithVerticalVelocity_tags_1)
+		/sizeof(asn_DEF_RANAP_HorizontalWithVerticalVelocity_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_HorizontalWithVerticalVelocity_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_HorizontalWithVerticalVelocity_tags_1)
+		/sizeof(asn_DEF_RANAP_HorizontalWithVerticalVelocity_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_HorizontalWithVerticalVelocity_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_HorizontalWithVerticalVelocity_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_HorizontalWithVerticalVelocity.h b/src/ranap/RANAP_HorizontalWithVerticalVelocity.h
new file mode 100644
index 0000000..129877c
--- /dev/null
+++ b/src/ranap/RANAP_HorizontalWithVerticalVelocity.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_HorizontalWithVerticalVelocity_H_
+#define	_RANAP_HorizontalWithVerticalVelocity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_HorizontalSpeedAndBearing.h"
+#include "RANAP_VerticalVelocity.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_HorizontalWithVerticalVelocity */
+typedef struct RANAP_HorizontalWithVerticalVelocity {
+	RANAP_HorizontalSpeedAndBearing_t	 horizontalSpeedAndBearing;
+	RANAP_VerticalVelocity_t	 veritcalVelocity;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_HorizontalWithVerticalVelocity_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_HorizontalWithVerticalVelocity;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_HorizontalWithVerticalVelocity_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_HorizontalWithVerticalVelocityAndUncertainty.c b/src/ranap/RANAP_HorizontalWithVerticalVelocityAndUncertainty.c
new file mode 100644
index 0000000..ad8ef4c
--- /dev/null
+++ b/src/ranap/RANAP_HorizontalWithVerticalVelocityAndUncertainty.c
@@ -0,0 +1,163 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_HorizontalWithVerticalVelocityAndUncertainty.h"
+
+static int
+memb_horizontalUncertaintySpeed_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 255l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_verticalUncertaintySpeed_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 255l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_horizontalUncertaintySpeed_constr_4 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  0l,  255l }	/* (0..255) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_verticalUncertaintySpeed_constr_5 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  0l,  255l }	/* (0..255) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_HorizontalWithVerticalVelocityAndUncertainty_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_HorizontalWithVerticalVelocityAndUncertainty, horizontalSpeedAndBearing),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_HorizontalSpeedAndBearing,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"horizontalSpeedAndBearing"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_HorizontalWithVerticalVelocityAndUncertainty, veritcalVelocity),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_VerticalVelocity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"veritcalVelocity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_HorizontalWithVerticalVelocityAndUncertainty, horizontalUncertaintySpeed),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_horizontalUncertaintySpeed_constraint_1,
+		&asn_PER_memb_horizontalUncertaintySpeed_constr_4,
+		0,
+		"horizontalUncertaintySpeed"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_HorizontalWithVerticalVelocityAndUncertainty, verticalUncertaintySpeed),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_verticalUncertaintySpeed_constraint_1,
+		&asn_PER_memb_verticalUncertaintySpeed_constr_5,
+		0,
+		"verticalUncertaintySpeed"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_HorizontalWithVerticalVelocityAndUncertainty, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_HorizontalWithVerticalVelocityAndUncertainty_oms_1[] = { 4 };
+static const ber_tlv_tag_t asn_DEF_RANAP_HorizontalWithVerticalVelocityAndUncertainty_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_HorizontalWithVerticalVelocityAndUncertainty_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* horizontalSpeedAndBearing */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* veritcalVelocity */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* horizontalUncertaintySpeed */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* verticalUncertaintySpeed */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_HorizontalWithVerticalVelocityAndUncertainty_specs_1 = {
+	sizeof(struct RANAP_HorizontalWithVerticalVelocityAndUncertainty),
+	offsetof(struct RANAP_HorizontalWithVerticalVelocityAndUncertainty, _asn_ctx),
+	asn_MAP_RANAP_HorizontalWithVerticalVelocityAndUncertainty_tag2el_1,
+	5,	/* Count of tags in the map */
+	asn_MAP_RANAP_HorizontalWithVerticalVelocityAndUncertainty_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	4,	/* Start extensions */
+	6	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_HorizontalWithVerticalVelocityAndUncertainty = {
+	"RANAP_HorizontalWithVerticalVelocityAndUncertainty",
+	"RANAP_HorizontalWithVerticalVelocityAndUncertainty",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_HorizontalWithVerticalVelocityAndUncertainty_tags_1,
+	sizeof(asn_DEF_RANAP_HorizontalWithVerticalVelocityAndUncertainty_tags_1)
+		/sizeof(asn_DEF_RANAP_HorizontalWithVerticalVelocityAndUncertainty_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_HorizontalWithVerticalVelocityAndUncertainty_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_HorizontalWithVerticalVelocityAndUncertainty_tags_1)
+		/sizeof(asn_DEF_RANAP_HorizontalWithVerticalVelocityAndUncertainty_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_HorizontalWithVerticalVelocityAndUncertainty_1,
+	5,	/* Elements count */
+	&asn_SPC_RANAP_HorizontalWithVerticalVelocityAndUncertainty_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_HorizontalWithVerticalVelocityAndUncertainty.h b/src/ranap/RANAP_HorizontalWithVerticalVelocityAndUncertainty.h
new file mode 100644
index 0000000..d75d63f
--- /dev/null
+++ b/src/ranap/RANAP_HorizontalWithVerticalVelocityAndUncertainty.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_HorizontalWithVerticalVelocityAndUncertainty_H_
+#define	_RANAP_HorizontalWithVerticalVelocityAndUncertainty_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_HorizontalSpeedAndBearing.h"
+#include "RANAP_VerticalVelocity.h"
+#include <NativeInteger.h>
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_HorizontalWithVerticalVelocityAndUncertainty */
+typedef struct RANAP_HorizontalWithVerticalVelocityAndUncertainty {
+	RANAP_HorizontalSpeedAndBearing_t	 horizontalSpeedAndBearing;
+	RANAP_VerticalVelocity_t	 veritcalVelocity;
+	long	 horizontalUncertaintySpeed;
+	long	 verticalUncertaintySpeed;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_HorizontalWithVerticalVelocityAndUncertainty_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_HorizontalWithVerticalVelocityAndUncertainty;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_HorizontalWithVerticalVelocityAndUncertainty_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IE-Extensions.c b/src/ranap/RANAP_IE-Extensions.c
new file mode 100644
index 0000000..27de521
--- /dev/null
+++ b/src/ranap/RANAP_IE-Extensions.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IE-Extensions.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_IE_Extensions_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  1l,  65535l }	/* (SIZE(1..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_IE_Extensions_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_IE_Extensions_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_IE_Extensions_specs_1 = {
+	sizeof(struct RANAP_IE_Extensions),
+	offsetof(struct RANAP_IE_Extensions, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IE_Extensions = {
+	"RANAP_IE-Extensions",
+	"RANAP_IE-Extensions",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_IE_Extensions_tags_1,
+	sizeof(asn_DEF_RANAP_IE_Extensions_tags_1)
+		/sizeof(asn_DEF_RANAP_IE_Extensions_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_IE_Extensions_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_IE_Extensions_tags_1)
+		/sizeof(asn_DEF_RANAP_IE_Extensions_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_IE_Extensions_constr_1,
+	asn_MBR_RANAP_IE_Extensions_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_IE_Extensions_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_IE-Extensions.h b/src/ranap/RANAP_IE-Extensions.h
new file mode 100644
index 0000000..3866186
--- /dev/null
+++ b/src/ranap/RANAP_IE-Extensions.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_IE_Extensions_H_
+#define	_RANAP_IE_Extensions_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_IE-Extensions */
+typedef struct RANAP_IE_Extensions {
+	A_SEQUENCE_OF(RANAP_IE_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_IE_Extensions_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IE_Extensions;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IE_Extensions_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IE.c b/src/ranap/RANAP_IE.c
new file mode 100644
index 0000000..050bd94
--- /dev/null
+++ b/src/ranap/RANAP_IE.c
@@ -0,0 +1,81 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_IE.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_IE_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_IE, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ProtocolIE_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_IE, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Criticality,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"criticality"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_IE, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ANY,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_IE_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_IE_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_IE_specs_1 = {
+	sizeof(struct RANAP_IE),
+	offsetof(struct RANAP_IE, _asn_ctx),
+	asn_MAP_RANAP_IE_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IE = {
+	"RANAP_IE",
+	"RANAP_IE",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_IE_tags_1,
+	sizeof(asn_DEF_RANAP_IE_tags_1)
+		/sizeof(asn_DEF_RANAP_IE_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_IE_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_IE_tags_1)
+		/sizeof(asn_DEF_RANAP_IE_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_IE_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_IE_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_IE.h b/src/ranap/RANAP_IE.h
new file mode 100644
index 0000000..e5e23d4
--- /dev/null
+++ b/src/ranap/RANAP_IE.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_IE_H_
+#define	_RANAP_IE_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ProtocolIE-ID.h"
+#include "RANAP_Criticality.h"
+#include <ANY.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_IE */
+typedef struct RANAP_IE {
+	RANAP_ProtocolIE_ID_t	 id;
+	RANAP_Criticality_t	 criticality;
+	ANY_t	 value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_IE_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IE;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IE_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IMEI.c b/src/ranap/RANAP_IMEI.c
new file mode 100644
index 0000000..92956be
--- /dev/null
+++ b/src/ranap/RANAP_IMEI.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IMEI.h"
+
+int
+RANAP_IMEI_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 8l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_IMEI_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_IMEI_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_IMEI_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_IMEI_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IMEI_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IMEI_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_IMEI_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_IMEI_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IMEI_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IMEI_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_IMEI_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_IMEI_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IMEI_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IMEI_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_IMEI_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_IMEI_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_IMEI_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_IMEI_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_IMEI_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_IMEI_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_IMEI_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_IMEI_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  8l,  8l }	/* (SIZE(8..8)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_IMEI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IMEI = {
+	"RANAP_IMEI",
+	"RANAP_IMEI",
+	RANAP_IMEI_free,
+	RANAP_IMEI_print,
+	RANAP_IMEI_constraint,
+	RANAP_IMEI_decode_ber,
+	RANAP_IMEI_encode_der,
+	RANAP_IMEI_decode_xer,
+	RANAP_IMEI_encode_xer,
+	RANAP_IMEI_decode_uper,
+	RANAP_IMEI_encode_uper,
+	RANAP_IMEI_decode_aper,
+	RANAP_IMEI_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_IMEI_tags_1,
+	sizeof(asn_DEF_RANAP_IMEI_tags_1)
+		/sizeof(asn_DEF_RANAP_IMEI_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_IMEI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_IMEI_tags_1)
+		/sizeof(asn_DEF_RANAP_IMEI_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_IMEI_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_IMEI.h b/src/ranap/RANAP_IMEI.h
new file mode 100644
index 0000000..0416050
--- /dev/null
+++ b/src/ranap/RANAP_IMEI.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_IMEI_H_
+#define	_RANAP_IMEI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_IMEI */
+typedef OCTET_STRING_t	 RANAP_IMEI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IMEI;
+asn_struct_free_f RANAP_IMEI_free;
+asn_struct_print_f RANAP_IMEI_print;
+asn_constr_check_f RANAP_IMEI_constraint;
+ber_type_decoder_f RANAP_IMEI_decode_ber;
+der_type_encoder_f RANAP_IMEI_encode_der;
+xer_type_decoder_f RANAP_IMEI_decode_xer;
+xer_type_encoder_f RANAP_IMEI_encode_xer;
+per_type_decoder_f RANAP_IMEI_decode_uper;
+per_type_encoder_f RANAP_IMEI_encode_uper;
+per_type_decoder_f RANAP_IMEI_decode_aper;
+per_type_encoder_f RANAP_IMEI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IMEI_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IMEIGroup.c b/src/ranap/RANAP_IMEIGroup.c
new file mode 100644
index 0000000..7f21f94
--- /dev/null
+++ b/src/ranap/RANAP_IMEIGroup.c
@@ -0,0 +1,119 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IMEIGroup.h"
+
+static int
+memb_iMEIMask_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 7l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_iMEIMask_constr_3 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  7l,  7l }	/* (SIZE(7..7)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_IMEIGroup_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_IMEIGroup, iMEI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IMEI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iMEI"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_IMEIGroup, iMEIMask),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		memb_iMEIMask_constraint_1,
+		&asn_PER_memb_iMEIMask_constr_3,
+		0,
+		"iMEIMask"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_IMEIGroup, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_IMEIGroup_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_IMEIGroup_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_IMEIGroup_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iMEI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iMEIMask */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_IMEIGroup_specs_1 = {
+	sizeof(struct RANAP_IMEIGroup),
+	offsetof(struct RANAP_IMEIGroup, _asn_ctx),
+	asn_MAP_RANAP_IMEIGroup_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_IMEIGroup_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IMEIGroup = {
+	"RANAP_IMEIGroup",
+	"RANAP_IMEIGroup",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_IMEIGroup_tags_1,
+	sizeof(asn_DEF_RANAP_IMEIGroup_tags_1)
+		/sizeof(asn_DEF_RANAP_IMEIGroup_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_IMEIGroup_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_IMEIGroup_tags_1)
+		/sizeof(asn_DEF_RANAP_IMEIGroup_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_IMEIGroup_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_IMEIGroup_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_IMEIGroup.h b/src/ranap/RANAP_IMEIGroup.h
new file mode 100644
index 0000000..416d7c7
--- /dev/null
+++ b/src/ranap/RANAP_IMEIGroup.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_IMEIGroup_H_
+#define	_RANAP_IMEIGroup_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IMEI.h"
+#include <BIT_STRING.h>
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_IMEIGroup */
+typedef struct RANAP_IMEIGroup {
+	RANAP_IMEI_t	 iMEI;
+	BIT_STRING_t	 iMEIMask;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_IMEIGroup_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IMEIGroup;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IMEIGroup_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IMEIList.c b/src/ranap/RANAP_IMEIList.c
new file mode 100644
index 0000000..643d88c
--- /dev/null
+++ b/src/ranap/RANAP_IMEIList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IMEIList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_IMEIList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1l,  64l }	/* (SIZE(1..64)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_IMEIList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IMEI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_IMEIList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_IMEIList_specs_1 = {
+	sizeof(struct RANAP_IMEIList),
+	offsetof(struct RANAP_IMEIList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IMEIList = {
+	"RANAP_IMEIList",
+	"RANAP_IMEIList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_IMEIList_tags_1,
+	sizeof(asn_DEF_RANAP_IMEIList_tags_1)
+		/sizeof(asn_DEF_RANAP_IMEIList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_IMEIList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_IMEIList_tags_1)
+		/sizeof(asn_DEF_RANAP_IMEIList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_IMEIList_constr_1,
+	asn_MBR_RANAP_IMEIList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_IMEIList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_IMEIList.h b/src/ranap/RANAP_IMEIList.h
new file mode 100644
index 0000000..07da405
--- /dev/null
+++ b/src/ranap/RANAP_IMEIList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_IMEIList_H_
+#define	_RANAP_IMEIList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IMEI.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_IMEIList */
+typedef struct RANAP_IMEIList {
+	A_SEQUENCE_OF(RANAP_IMEI_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_IMEIList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IMEIList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IMEIList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IMEISV.c b/src/ranap/RANAP_IMEISV.c
new file mode 100644
index 0000000..06dd575
--- /dev/null
+++ b/src/ranap/RANAP_IMEISV.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IMEISV.h"
+
+int
+RANAP_IMEISV_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 8l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_IMEISV_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_IMEISV_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_IMEISV_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_IMEISV_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IMEISV_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IMEISV_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_IMEISV_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_IMEISV_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IMEISV_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IMEISV_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_IMEISV_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_IMEISV_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IMEISV_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IMEISV_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_IMEISV_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_IMEISV_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_IMEISV_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_IMEISV_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_IMEISV_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_IMEISV_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_IMEISV_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_IMEISV_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  8l,  8l }	/* (SIZE(8..8)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_IMEISV_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IMEISV = {
+	"RANAP_IMEISV",
+	"RANAP_IMEISV",
+	RANAP_IMEISV_free,
+	RANAP_IMEISV_print,
+	RANAP_IMEISV_constraint,
+	RANAP_IMEISV_decode_ber,
+	RANAP_IMEISV_encode_der,
+	RANAP_IMEISV_decode_xer,
+	RANAP_IMEISV_encode_xer,
+	RANAP_IMEISV_decode_uper,
+	RANAP_IMEISV_encode_uper,
+	RANAP_IMEISV_decode_aper,
+	RANAP_IMEISV_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_IMEISV_tags_1,
+	sizeof(asn_DEF_RANAP_IMEISV_tags_1)
+		/sizeof(asn_DEF_RANAP_IMEISV_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_IMEISV_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_IMEISV_tags_1)
+		/sizeof(asn_DEF_RANAP_IMEISV_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_IMEISV_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_IMEISV.h b/src/ranap/RANAP_IMEISV.h
new file mode 100644
index 0000000..2866172
--- /dev/null
+++ b/src/ranap/RANAP_IMEISV.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_IMEISV_H_
+#define	_RANAP_IMEISV_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_IMEISV */
+typedef OCTET_STRING_t	 RANAP_IMEISV_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IMEISV;
+asn_struct_free_f RANAP_IMEISV_free;
+asn_struct_print_f RANAP_IMEISV_print;
+asn_constr_check_f RANAP_IMEISV_constraint;
+ber_type_decoder_f RANAP_IMEISV_decode_ber;
+der_type_encoder_f RANAP_IMEISV_encode_der;
+xer_type_decoder_f RANAP_IMEISV_decode_xer;
+xer_type_encoder_f RANAP_IMEISV_encode_xer;
+per_type_decoder_f RANAP_IMEISV_decode_uper;
+per_type_encoder_f RANAP_IMEISV_encode_uper;
+per_type_decoder_f RANAP_IMEISV_decode_aper;
+per_type_encoder_f RANAP_IMEISV_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IMEISV_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IMEISVGroup.c b/src/ranap/RANAP_IMEISVGroup.c
new file mode 100644
index 0000000..3c6f036
--- /dev/null
+++ b/src/ranap/RANAP_IMEISVGroup.c
@@ -0,0 +1,119 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IMEISVGroup.h"
+
+static int
+memb_iMEISVMask_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 7l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_iMEISVMask_constr_3 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  7l,  7l }	/* (SIZE(7..7)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_IMEISVGroup_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_IMEISVGroup, iMEISV),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IMEISV,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iMEISV"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_IMEISVGroup, iMEISVMask),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		memb_iMEISVMask_constraint_1,
+		&asn_PER_memb_iMEISVMask_constr_3,
+		0,
+		"iMEISVMask"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_IMEISVGroup, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_IMEISVGroup_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_IMEISVGroup_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_IMEISVGroup_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iMEISV */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iMEISVMask */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_IMEISVGroup_specs_1 = {
+	sizeof(struct RANAP_IMEISVGroup),
+	offsetof(struct RANAP_IMEISVGroup, _asn_ctx),
+	asn_MAP_RANAP_IMEISVGroup_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_IMEISVGroup_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IMEISVGroup = {
+	"RANAP_IMEISVGroup",
+	"RANAP_IMEISVGroup",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_IMEISVGroup_tags_1,
+	sizeof(asn_DEF_RANAP_IMEISVGroup_tags_1)
+		/sizeof(asn_DEF_RANAP_IMEISVGroup_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_IMEISVGroup_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_IMEISVGroup_tags_1)
+		/sizeof(asn_DEF_RANAP_IMEISVGroup_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_IMEISVGroup_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_IMEISVGroup_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_IMEISVGroup.h b/src/ranap/RANAP_IMEISVGroup.h
new file mode 100644
index 0000000..d1a423f
--- /dev/null
+++ b/src/ranap/RANAP_IMEISVGroup.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_IMEISVGroup_H_
+#define	_RANAP_IMEISVGroup_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IMEISV.h"
+#include <BIT_STRING.h>
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_IMEISVGroup */
+typedef struct RANAP_IMEISVGroup {
+	RANAP_IMEISV_t	 iMEISV;
+	BIT_STRING_t	 iMEISVMask;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_IMEISVGroup_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IMEISVGroup;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IMEISVGroup_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IMEISVList.c b/src/ranap/RANAP_IMEISVList.c
new file mode 100644
index 0000000..6b19421
--- /dev/null
+++ b/src/ranap/RANAP_IMEISVList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IMEISVList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_IMEISVList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1l,  64l }	/* (SIZE(1..64)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_IMEISVList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IMEISV,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_IMEISVList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_IMEISVList_specs_1 = {
+	sizeof(struct RANAP_IMEISVList),
+	offsetof(struct RANAP_IMEISVList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IMEISVList = {
+	"RANAP_IMEISVList",
+	"RANAP_IMEISVList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_IMEISVList_tags_1,
+	sizeof(asn_DEF_RANAP_IMEISVList_tags_1)
+		/sizeof(asn_DEF_RANAP_IMEISVList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_IMEISVList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_IMEISVList_tags_1)
+		/sizeof(asn_DEF_RANAP_IMEISVList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_IMEISVList_constr_1,
+	asn_MBR_RANAP_IMEISVList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_IMEISVList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_IMEISVList.h b/src/ranap/RANAP_IMEISVList.h
new file mode 100644
index 0000000..ebf9a63
--- /dev/null
+++ b/src/ranap/RANAP_IMEISVList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_IMEISVList_H_
+#define	_RANAP_IMEISVList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IMEISV.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_IMEISVList */
+typedef struct RANAP_IMEISVList {
+	A_SEQUENCE_OF(RANAP_IMEISV_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_IMEISVList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IMEISVList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IMEISVList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IMSI.c b/src/ranap/RANAP_IMSI.c
new file mode 100644
index 0000000..89a85cd
--- /dev/null
+++ b/src/ranap/RANAP_IMSI.c
@@ -0,0 +1,162 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IMSI.h"
+
+int
+RANAP_IMSI_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_RANAP_TBCD_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using RANAP_TBCD_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_IMSI_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_RANAP_TBCD_STRING.free_struct;
+	td->print_struct   = asn_DEF_RANAP_TBCD_STRING.print_struct;
+	td->check_constraints = asn_DEF_RANAP_TBCD_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_RANAP_TBCD_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_RANAP_TBCD_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_RANAP_TBCD_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_RANAP_TBCD_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_RANAP_TBCD_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_RANAP_TBCD_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_RANAP_TBCD_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_RANAP_TBCD_STRING.aper_encoder;
+	/* The next four lines are here because of -fknown-extern-type */
+	td->tags           = asn_DEF_RANAP_TBCD_STRING.tags;
+	td->tags_count     = asn_DEF_RANAP_TBCD_STRING.tags_count;
+	td->all_tags       = asn_DEF_RANAP_TBCD_STRING.all_tags;
+	td->all_tags_count = asn_DEF_RANAP_TBCD_STRING.all_tags_count;
+	/* End of these lines */
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_RANAP_TBCD_STRING.per_constraints;
+	td->elements       = asn_DEF_RANAP_TBCD_STRING.elements;
+	td->elements_count = asn_DEF_RANAP_TBCD_STRING.elements_count;
+	td->specifics      = asn_DEF_RANAP_TBCD_STRING.specifics;
+}
+
+void
+RANAP_IMSI_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_IMSI_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_IMSI_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IMSI_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IMSI_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_IMSI_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_IMSI_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IMSI_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IMSI_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_IMSI_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_IMSI_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IMSI_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IMSI_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_IMSI_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_IMSI_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_IMSI_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_IMSI_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_IMSI_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_IMSI_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_IMSI_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_IMSI_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IMSI = {
+	"RANAP_IMSI",
+	"RANAP_IMSI",
+	RANAP_IMSI_free,
+	RANAP_IMSI_print,
+	RANAP_IMSI_constraint,
+	RANAP_IMSI_decode_ber,
+	RANAP_IMSI_encode_der,
+	RANAP_IMSI_decode_xer,
+	RANAP_IMSI_encode_xer,
+	RANAP_IMSI_decode_uper,
+	RANAP_IMSI_encode_uper,
+	RANAP_IMSI_decode_aper,
+	RANAP_IMSI_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_IMSI_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_IMSI.h b/src/ranap/RANAP_IMSI.h
new file mode 100644
index 0000000..6cf720d
--- /dev/null
+++ b/src/ranap/RANAP_IMSI.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+#include <constr_CHOICE.h>
+
+#ifndef	_RANAP_IMSI_H_
+#define	_RANAP_IMSI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_TBCD-STRING.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_IMSI */
+typedef RANAP_TBCD_STRING_t	 RANAP_IMSI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IMSI;
+asn_struct_free_f RANAP_IMSI_free;
+asn_struct_print_f RANAP_IMSI_print;
+asn_constr_check_f RANAP_IMSI_constraint;
+ber_type_decoder_f RANAP_IMSI_decode_ber;
+der_type_encoder_f RANAP_IMSI_encode_der;
+xer_type_decoder_f RANAP_IMSI_decode_xer;
+xer_type_encoder_f RANAP_IMSI_encode_xer;
+per_type_decoder_f RANAP_IMSI_decode_uper;
+per_type_encoder_f RANAP_IMSI_encode_uper;
+per_type_decoder_f RANAP_IMSI_decode_aper;
+per_type_encoder_f RANAP_IMSI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IMSI_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IPMulticastAddress.c b/src/ranap/RANAP_IPMulticastAddress.c
new file mode 100644
index 0000000..7efb111
--- /dev/null
+++ b/src/ranap/RANAP_IPMulticastAddress.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IPMulticastAddress.h"
+
+int
+RANAP_IPMulticastAddress_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 4l && size <= 16l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_IPMulticastAddress_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_IPMulticastAddress_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_IPMulticastAddress_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_IPMulticastAddress_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IPMulticastAddress_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IPMulticastAddress_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_IPMulticastAddress_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_IPMulticastAddress_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IPMulticastAddress_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IPMulticastAddress_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_IPMulticastAddress_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_IPMulticastAddress_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IPMulticastAddress_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IPMulticastAddress_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_IPMulticastAddress_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_IPMulticastAddress_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_IPMulticastAddress_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_IPMulticastAddress_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_IPMulticastAddress_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_IPMulticastAddress_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_IPMulticastAddress_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_IPMulticastAddress_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  4l,  16l }	/* (SIZE(4..16)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_IPMulticastAddress_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IPMulticastAddress = {
+	"RANAP_IPMulticastAddress",
+	"RANAP_IPMulticastAddress",
+	RANAP_IPMulticastAddress_free,
+	RANAP_IPMulticastAddress_print,
+	RANAP_IPMulticastAddress_constraint,
+	RANAP_IPMulticastAddress_decode_ber,
+	RANAP_IPMulticastAddress_encode_der,
+	RANAP_IPMulticastAddress_decode_xer,
+	RANAP_IPMulticastAddress_encode_xer,
+	RANAP_IPMulticastAddress_decode_uper,
+	RANAP_IPMulticastAddress_encode_uper,
+	RANAP_IPMulticastAddress_decode_aper,
+	RANAP_IPMulticastAddress_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_IPMulticastAddress_tags_1,
+	sizeof(asn_DEF_RANAP_IPMulticastAddress_tags_1)
+		/sizeof(asn_DEF_RANAP_IPMulticastAddress_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_IPMulticastAddress_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_IPMulticastAddress_tags_1)
+		/sizeof(asn_DEF_RANAP_IPMulticastAddress_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_IPMulticastAddress_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_IPMulticastAddress.h b/src/ranap/RANAP_IPMulticastAddress.h
new file mode 100644
index 0000000..8724d11
--- /dev/null
+++ b/src/ranap/RANAP_IPMulticastAddress.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_IPMulticastAddress_H_
+#define	_RANAP_IPMulticastAddress_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_IPMulticastAddress */
+typedef OCTET_STRING_t	 RANAP_IPMulticastAddress_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IPMulticastAddress;
+asn_struct_free_f RANAP_IPMulticastAddress_free;
+asn_struct_print_f RANAP_IPMulticastAddress_print;
+asn_constr_check_f RANAP_IPMulticastAddress_constraint;
+ber_type_decoder_f RANAP_IPMulticastAddress_decode_ber;
+der_type_encoder_f RANAP_IPMulticastAddress_encode_der;
+xer_type_decoder_f RANAP_IPMulticastAddress_decode_xer;
+xer_type_encoder_f RANAP_IPMulticastAddress_encode_xer;
+per_type_decoder_f RANAP_IPMulticastAddress_decode_uper;
+per_type_encoder_f RANAP_IPMulticastAddress_encode_uper;
+per_type_decoder_f RANAP_IPMulticastAddress_decode_aper;
+per_type_encoder_f RANAP_IPMulticastAddress_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IPMulticastAddress_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IRAT-Measurement-Configuration.c b/src/ranap/RANAP_IRAT-Measurement-Configuration.c
new file mode 100644
index 0000000..257f282
--- /dev/null
+++ b/src/ranap/RANAP_IRAT-Measurement-Configuration.c
@@ -0,0 +1,153 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IRAT-Measurement-Configuration.h"
+
+static int
+memb_rSRP_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 97l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_rSRQ_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 34l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_rSRP_constr_2 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  0l,  97l }	/* (0..97) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_rSRQ_constr_3 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 6,  6,  0l,  34l }	/* (0..34) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_IRAT_Measurement_Configuration_1[] = {
+	{ ATF_POINTER, 2, offsetof(struct RANAP_IRAT_Measurement_Configuration, rSRP),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_rSRP_constraint_1,
+		&asn_PER_memb_rSRP_constr_2,
+		0,
+		"rSRP"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_IRAT_Measurement_Configuration, rSRQ),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_rSRQ_constraint_1,
+		&asn_PER_memb_rSRQ_constr_3,
+		0,
+		"rSRQ"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_IRAT_Measurement_Configuration, iRATmeasurementParameters),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IRATmeasurementParameters,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iRATmeasurementParameters"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_IRAT_Measurement_Configuration, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_IRAT_Measurement_Configuration_oms_1[] = { 0, 1, 3 };
+static const ber_tlv_tag_t asn_DEF_RANAP_IRAT_Measurement_Configuration_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_IRAT_Measurement_Configuration_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rSRP */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rSRQ */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* iRATmeasurementParameters */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_IRAT_Measurement_Configuration_specs_1 = {
+	sizeof(struct RANAP_IRAT_Measurement_Configuration),
+	offsetof(struct RANAP_IRAT_Measurement_Configuration, _asn_ctx),
+	asn_MAP_RANAP_IRAT_Measurement_Configuration_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_IRAT_Measurement_Configuration_oms_1,	/* Optional members */
+	3, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IRAT_Measurement_Configuration = {
+	"RANAP_IRAT-Measurement-Configuration",
+	"RANAP_IRAT-Measurement-Configuration",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_IRAT_Measurement_Configuration_tags_1,
+	sizeof(asn_DEF_RANAP_IRAT_Measurement_Configuration_tags_1)
+		/sizeof(asn_DEF_RANAP_IRAT_Measurement_Configuration_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_IRAT_Measurement_Configuration_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_IRAT_Measurement_Configuration_tags_1)
+		/sizeof(asn_DEF_RANAP_IRAT_Measurement_Configuration_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_IRAT_Measurement_Configuration_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_IRAT_Measurement_Configuration_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_IRAT-Measurement-Configuration.h b/src/ranap/RANAP_IRAT-Measurement-Configuration.h
new file mode 100644
index 0000000..2feb139
--- /dev/null
+++ b/src/ranap/RANAP_IRAT-Measurement-Configuration.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_IRAT_Measurement_Configuration_H_
+#define	_RANAP_IRAT_Measurement_Configuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include "RANAP_IRATmeasurementParameters.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_IRAT-Measurement-Configuration */
+typedef struct RANAP_IRAT_Measurement_Configuration {
+	long	*rSRP	/* OPTIONAL */;
+	long	*rSRQ	/* OPTIONAL */;
+	RANAP_IRATmeasurementParameters_t	 iRATmeasurementParameters;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_IRAT_Measurement_Configuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IRAT_Measurement_Configuration;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IRAT_Measurement_Configuration_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IRATmeasurementParameters.c b/src/ranap/RANAP_IRATmeasurementParameters.c
new file mode 100644
index 0000000..d558177
--- /dev/null
+++ b/src/ranap/RANAP_IRATmeasurementParameters.c
@@ -0,0 +1,113 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IRATmeasurementParameters.h"
+
+static int
+memb_measurementDuration_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 100l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_measurementDuration_constr_2 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  1l,  100l }	/* (1..100) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_IRATmeasurementParameters_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_IRATmeasurementParameters, measurementDuration),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_measurementDuration_constraint_1,
+		&asn_PER_memb_measurementDuration_constr_2,
+		0,
+		"measurementDuration"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_IRATmeasurementParameters, eUTRANFrequencies),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_EUTRANFrequencies,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"eUTRANFrequencies"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_IRATmeasurementParameters, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_IRATmeasurementParameters_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_IRATmeasurementParameters_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_IRATmeasurementParameters_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measurementDuration */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eUTRANFrequencies */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_IRATmeasurementParameters_specs_1 = {
+	sizeof(struct RANAP_IRATmeasurementParameters),
+	offsetof(struct RANAP_IRATmeasurementParameters, _asn_ctx),
+	asn_MAP_RANAP_IRATmeasurementParameters_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_IRATmeasurementParameters_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IRATmeasurementParameters = {
+	"RANAP_IRATmeasurementParameters",
+	"RANAP_IRATmeasurementParameters",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_IRATmeasurementParameters_tags_1,
+	sizeof(asn_DEF_RANAP_IRATmeasurementParameters_tags_1)
+		/sizeof(asn_DEF_RANAP_IRATmeasurementParameters_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_IRATmeasurementParameters_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_IRATmeasurementParameters_tags_1)
+		/sizeof(asn_DEF_RANAP_IRATmeasurementParameters_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_IRATmeasurementParameters_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_IRATmeasurementParameters_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_IRATmeasurementParameters.h b/src/ranap/RANAP_IRATmeasurementParameters.h
new file mode 100644
index 0000000..740585f
--- /dev/null
+++ b/src/ranap/RANAP_IRATmeasurementParameters.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_IRATmeasurementParameters_H_
+#define	_RANAP_IRATmeasurementParameters_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include "RANAP_EUTRANFrequencies.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_IRATmeasurementParameters */
+typedef struct RANAP_IRATmeasurementParameters {
+	long	 measurementDuration;
+	RANAP_EUTRANFrequencies_t	*eUTRANFrequencies	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_IRATmeasurementParameters_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IRATmeasurementParameters;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IRATmeasurementParameters_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ImmediateMDT.c b/src/ranap/RANAP_ImmediateMDT.c
new file mode 100644
index 0000000..43cc167
--- /dev/null
+++ b/src/ranap/RANAP_ImmediateMDT.c
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ImmediateMDT.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_ImmediateMDT_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_ImmediateMDT, measurementsToActivate),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_MeasurementsToActivate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"measurementsToActivate"
+		},
+	{ ATF_POINTER, 3, offsetof(struct RANAP_ImmediateMDT, m1report),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANAP_M1Report,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"m1report"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_ImmediateMDT, m2report),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANAP_M2Report,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"m2report"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_ImmediateMDT, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_ImmediateMDT_oms_1[] = { 1, 2, 3 };
+static const ber_tlv_tag_t asn_DEF_RANAP_ImmediateMDT_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_ImmediateMDT_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measurementsToActivate */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m1report */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* m2report */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_ImmediateMDT_specs_1 = {
+	sizeof(struct RANAP_ImmediateMDT),
+	offsetof(struct RANAP_ImmediateMDT, _asn_ctx),
+	asn_MAP_RANAP_ImmediateMDT_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_ImmediateMDT_oms_1,	/* Optional members */
+	2, 1,	/* Root/Additions */
+	2,	/* Start extensions */
+	5	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ImmediateMDT = {
+	"RANAP_ImmediateMDT",
+	"RANAP_ImmediateMDT",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ImmediateMDT_tags_1,
+	sizeof(asn_DEF_RANAP_ImmediateMDT_tags_1)
+		/sizeof(asn_DEF_RANAP_ImmediateMDT_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ImmediateMDT_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ImmediateMDT_tags_1)
+		/sizeof(asn_DEF_RANAP_ImmediateMDT_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_ImmediateMDT_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_ImmediateMDT_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ImmediateMDT.h b/src/ranap/RANAP_ImmediateMDT.h
new file mode 100644
index 0000000..65a64f7
--- /dev/null
+++ b/src/ranap/RANAP_ImmediateMDT.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ImmediateMDT_H_
+#define	_RANAP_ImmediateMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_MeasurementsToActivate.h"
+#include "RANAP_M1Report.h"
+#include "RANAP_M2Report.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ImmediateMDT */
+typedef struct RANAP_ImmediateMDT {
+	RANAP_MeasurementsToActivate_t	 measurementsToActivate;
+	RANAP_M1Report_t	*m1report	/* OPTIONAL */;
+	RANAP_M2Report_t	*m2report	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_ImmediateMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ImmediateMDT;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ImmediateMDT_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IncludeVelocity.c b/src/ranap/RANAP_IncludeVelocity.c
new file mode 100644
index 0000000..66d3eb0
--- /dev/null
+++ b/src/ranap/RANAP_IncludeVelocity.c
@@ -0,0 +1,163 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IncludeVelocity.h"
+
+int
+RANAP_IncludeVelocity_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_IncludeVelocity_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_IncludeVelocity_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_IncludeVelocity_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_IncludeVelocity_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IncludeVelocity_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IncludeVelocity_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_IncludeVelocity_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_IncludeVelocity_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IncludeVelocity_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IncludeVelocity_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_IncludeVelocity_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_IncludeVelocity_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IncludeVelocity_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IncludeVelocity_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_IncludeVelocity_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_IncludeVelocity_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_IncludeVelocity_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_IncludeVelocity_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_IncludeVelocity_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_IncludeVelocity_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_IncludeVelocity_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_IncludeVelocity_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 0,  0,  0l,  0l }	/* (0..0) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_IncludeVelocity_value2enum_1[] = {
+	{ 0,	9,	"requested" }
+};
+static const unsigned int asn_MAP_RANAP_IncludeVelocity_enum2value_1[] = {
+	0	/* requested(0) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_IncludeVelocity_specs_1 = {
+	asn_MAP_RANAP_IncludeVelocity_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_IncludeVelocity_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_IncludeVelocity_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IncludeVelocity = {
+	"RANAP_IncludeVelocity",
+	"RANAP_IncludeVelocity",
+	RANAP_IncludeVelocity_free,
+	RANAP_IncludeVelocity_print,
+	RANAP_IncludeVelocity_constraint,
+	RANAP_IncludeVelocity_decode_ber,
+	RANAP_IncludeVelocity_encode_der,
+	RANAP_IncludeVelocity_decode_xer,
+	RANAP_IncludeVelocity_encode_xer,
+	RANAP_IncludeVelocity_decode_uper,
+	RANAP_IncludeVelocity_encode_uper,
+	RANAP_IncludeVelocity_decode_aper,
+	RANAP_IncludeVelocity_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_IncludeVelocity_tags_1,
+	sizeof(asn_DEF_RANAP_IncludeVelocity_tags_1)
+		/sizeof(asn_DEF_RANAP_IncludeVelocity_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_IncludeVelocity_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_IncludeVelocity_tags_1)
+		/sizeof(asn_DEF_RANAP_IncludeVelocity_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_IncludeVelocity_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_IncludeVelocity_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_IncludeVelocity.h b/src/ranap/RANAP_IncludeVelocity.h
new file mode 100644
index 0000000..913d320
--- /dev/null
+++ b/src/ranap/RANAP_IncludeVelocity.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_IncludeVelocity_H_
+#define	_RANAP_IncludeVelocity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_IncludeVelocity {
+	RANAP_IncludeVelocity_requested	= 0
+} e_RANAP_IncludeVelocity;
+
+/* RANAP_IncludeVelocity */
+typedef long	 RANAP_IncludeVelocity_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IncludeVelocity;
+asn_struct_free_f RANAP_IncludeVelocity_free;
+asn_struct_print_f RANAP_IncludeVelocity_print;
+asn_constr_check_f RANAP_IncludeVelocity_constraint;
+ber_type_decoder_f RANAP_IncludeVelocity_decode_ber;
+der_type_encoder_f RANAP_IncludeVelocity_encode_der;
+xer_type_decoder_f RANAP_IncludeVelocity_decode_xer;
+xer_type_encoder_f RANAP_IncludeVelocity_encode_xer;
+per_type_decoder_f RANAP_IncludeVelocity_decode_uper;
+per_type_encoder_f RANAP_IncludeVelocity_encode_uper;
+per_type_decoder_f RANAP_IncludeVelocity_decode_aper;
+per_type_encoder_f RANAP_IncludeVelocity_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IncludeVelocity_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_InformationExchangeID.c b/src/ranap/RANAP_InformationExchangeID.c
new file mode 100644
index 0000000..6b144ec
--- /dev/null
+++ b/src/ranap/RANAP_InformationExchangeID.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_InformationExchangeID.h"
+
+int
+RANAP_InformationExchangeID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 1048575l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_InformationExchangeID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_InformationExchangeID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_InformationExchangeID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_InformationExchangeID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_InformationExchangeID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_InformationExchangeID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_InformationExchangeID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_InformationExchangeID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_InformationExchangeID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_InformationExchangeID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_InformationExchangeID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_InformationExchangeID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_InformationExchangeID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_InformationExchangeID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_InformationExchangeID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_InformationExchangeID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_InformationExchangeID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_InformationExchangeID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_InformationExchangeID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_InformationExchangeID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_InformationExchangeID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_InformationExchangeID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 20, -1,  0l,  1048575l }	/* (0..1048575) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_InformationExchangeID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_InformationExchangeID = {
+	"RANAP_InformationExchangeID",
+	"RANAP_InformationExchangeID",
+	RANAP_InformationExchangeID_free,
+	RANAP_InformationExchangeID_print,
+	RANAP_InformationExchangeID_constraint,
+	RANAP_InformationExchangeID_decode_ber,
+	RANAP_InformationExchangeID_encode_der,
+	RANAP_InformationExchangeID_decode_xer,
+	RANAP_InformationExchangeID_encode_xer,
+	RANAP_InformationExchangeID_decode_uper,
+	RANAP_InformationExchangeID_encode_uper,
+	RANAP_InformationExchangeID_decode_aper,
+	RANAP_InformationExchangeID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_InformationExchangeID_tags_1,
+	sizeof(asn_DEF_RANAP_InformationExchangeID_tags_1)
+		/sizeof(asn_DEF_RANAP_InformationExchangeID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_InformationExchangeID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_InformationExchangeID_tags_1)
+		/sizeof(asn_DEF_RANAP_InformationExchangeID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_InformationExchangeID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_InformationExchangeID.h b/src/ranap/RANAP_InformationExchangeID.h
new file mode 100644
index 0000000..a5aac13
--- /dev/null
+++ b/src/ranap/RANAP_InformationExchangeID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_InformationExchangeID_H_
+#define	_RANAP_InformationExchangeID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_InformationExchangeID */
+typedef long	 RANAP_InformationExchangeID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_InformationExchangeID;
+asn_struct_free_f RANAP_InformationExchangeID_free;
+asn_struct_print_f RANAP_InformationExchangeID_print;
+asn_constr_check_f RANAP_InformationExchangeID_constraint;
+ber_type_decoder_f RANAP_InformationExchangeID_decode_ber;
+der_type_encoder_f RANAP_InformationExchangeID_encode_der;
+xer_type_decoder_f RANAP_InformationExchangeID_decode_xer;
+xer_type_encoder_f RANAP_InformationExchangeID_encode_xer;
+per_type_decoder_f RANAP_InformationExchangeID_decode_uper;
+per_type_encoder_f RANAP_InformationExchangeID_encode_uper;
+per_type_decoder_f RANAP_InformationExchangeID_decode_aper;
+per_type_encoder_f RANAP_InformationExchangeID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_InformationExchangeID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_InformationExchangeType.c b/src/ranap/RANAP_InformationExchangeType.c
new file mode 100644
index 0000000..dce099e
--- /dev/null
+++ b/src/ranap/RANAP_InformationExchangeType.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_InformationExchangeType.h"
+
+int
+RANAP_InformationExchangeType_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_InformationExchangeType_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_InformationExchangeType_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_InformationExchangeType_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_InformationExchangeType_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_InformationExchangeType_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_InformationExchangeType_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_InformationExchangeType_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_InformationExchangeType_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_InformationExchangeType_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_InformationExchangeType_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_InformationExchangeType_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_InformationExchangeType_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_InformationExchangeType_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_InformationExchangeType_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_InformationExchangeType_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_InformationExchangeType_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_InformationExchangeType_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_InformationExchangeType_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_InformationExchangeType_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_InformationExchangeType_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_InformationExchangeType_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_InformationExchangeType_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_InformationExchangeType_value2enum_1[] = {
+	{ 0,	8,	"transfer" },
+	{ 1,	7,	"request" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_InformationExchangeType_enum2value_1[] = {
+	1,	/* request(1) */
+	0	/* transfer(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_InformationExchangeType_specs_1 = {
+	asn_MAP_RANAP_InformationExchangeType_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_InformationExchangeType_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_InformationExchangeType_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_InformationExchangeType = {
+	"RANAP_InformationExchangeType",
+	"RANAP_InformationExchangeType",
+	RANAP_InformationExchangeType_free,
+	RANAP_InformationExchangeType_print,
+	RANAP_InformationExchangeType_constraint,
+	RANAP_InformationExchangeType_decode_ber,
+	RANAP_InformationExchangeType_encode_der,
+	RANAP_InformationExchangeType_decode_xer,
+	RANAP_InformationExchangeType_encode_xer,
+	RANAP_InformationExchangeType_decode_uper,
+	RANAP_InformationExchangeType_encode_uper,
+	RANAP_InformationExchangeType_decode_aper,
+	RANAP_InformationExchangeType_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_InformationExchangeType_tags_1,
+	sizeof(asn_DEF_RANAP_InformationExchangeType_tags_1)
+		/sizeof(asn_DEF_RANAP_InformationExchangeType_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_InformationExchangeType_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_InformationExchangeType_tags_1)
+		/sizeof(asn_DEF_RANAP_InformationExchangeType_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_InformationExchangeType_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_InformationExchangeType_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_InformationExchangeType.h b/src/ranap/RANAP_InformationExchangeType.h
new file mode 100644
index 0000000..57d05b9
--- /dev/null
+++ b/src/ranap/RANAP_InformationExchangeType.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_InformationExchangeType_H_
+#define	_RANAP_InformationExchangeType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_InformationExchangeType {
+	RANAP_InformationExchangeType_transfer	= 0,
+	RANAP_InformationExchangeType_request	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_InformationExchangeType;
+
+/* RANAP_InformationExchangeType */
+typedef long	 RANAP_InformationExchangeType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_InformationExchangeType;
+asn_struct_free_f RANAP_InformationExchangeType_free;
+asn_struct_print_f RANAP_InformationExchangeType_print;
+asn_constr_check_f RANAP_InformationExchangeType_constraint;
+ber_type_decoder_f RANAP_InformationExchangeType_decode_ber;
+der_type_encoder_f RANAP_InformationExchangeType_encode_der;
+xer_type_decoder_f RANAP_InformationExchangeType_decode_xer;
+xer_type_encoder_f RANAP_InformationExchangeType_encode_xer;
+per_type_decoder_f RANAP_InformationExchangeType_decode_uper;
+per_type_encoder_f RANAP_InformationExchangeType_encode_uper;
+per_type_decoder_f RANAP_InformationExchangeType_decode_aper;
+per_type_encoder_f RANAP_InformationExchangeType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_InformationExchangeType_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_InformationRequestType.c b/src/ranap/RANAP_InformationRequestType.c
new file mode 100644
index 0000000..ae38503
--- /dev/null
+++ b/src/ranap/RANAP_InformationRequestType.c
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_InformationRequestType.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_InformationRequestType_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_InformationRequestType_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_InformationRequestType, choice.mBMSIPMulticastAddressandAPNRequest),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_MBMSIPMulticastAddressandAPNRequest,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"mBMSIPMulticastAddressandAPNRequest"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_InformationRequestType, choice.permanentNAS_UE_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANAP_PermanentNAS_UE_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"permanentNAS-UE-ID"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_InformationRequestType_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBMSIPMulticastAddressandAPNRequest */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* permanentNAS-UE-ID */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_InformationRequestType_specs_1 = {
+	sizeof(struct RANAP_InformationRequestType),
+	offsetof(struct RANAP_InformationRequestType, _asn_ctx),
+	offsetof(struct RANAP_InformationRequestType, present),
+	sizeof(((struct RANAP_InformationRequestType *)0)->present),
+	asn_MAP_RANAP_InformationRequestType_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_InformationRequestType = {
+	"RANAP_InformationRequestType",
+	"RANAP_InformationRequestType",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_InformationRequestType_constr_1,
+	asn_MBR_RANAP_InformationRequestType_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_InformationRequestType_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_InformationRequestType.h b/src/ranap/RANAP_InformationRequestType.h
new file mode 100644
index 0000000..9fbbc10
--- /dev/null
+++ b/src/ranap/RANAP_InformationRequestType.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_InformationRequestType_H_
+#define	_RANAP_InformationRequestType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_MBMSIPMulticastAddressandAPNRequest.h"
+#include "RANAP_PermanentNAS-UE-ID.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_InformationRequestType_PR {
+	RANAP_InformationRequestType_PR_NOTHING,	/* No components present */
+	RANAP_InformationRequestType_PR_mBMSIPMulticastAddressandAPNRequest,
+	RANAP_InformationRequestType_PR_permanentNAS_UE_ID,
+	/* Extensions may appear below */
+	
+} RANAP_InformationRequestType_PR;
+
+/* RANAP_InformationRequestType */
+typedef struct RANAP_InformationRequestType {
+	RANAP_InformationRequestType_PR present;
+	union RANAP_InformationRequestType_u {
+		RANAP_MBMSIPMulticastAddressandAPNRequest_t	 mBMSIPMulticastAddressandAPNRequest;
+		RANAP_PermanentNAS_UE_ID_t	 permanentNAS_UE_ID;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_InformationRequestType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_InformationRequestType;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_InformationRequestType_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_InformationRequested.c b/src/ranap/RANAP_InformationRequested.c
new file mode 100644
index 0000000..b51025a
--- /dev/null
+++ b/src/ranap/RANAP_InformationRequested.c
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_InformationRequested.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_InformationRequested_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_InformationRequested_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_InformationRequested, choice.requestedMBMSIPMulticastAddressandAPNRequest),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"requestedMBMSIPMulticastAddressandAPNRequest"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_InformationRequested, choice.requestedMulticastServiceList),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RequestedMulticastServiceList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"requestedMulticastServiceList"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_InformationRequested_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requestedMBMSIPMulticastAddressandAPNRequest */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* requestedMulticastServiceList */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_InformationRequested_specs_1 = {
+	sizeof(struct RANAP_InformationRequested),
+	offsetof(struct RANAP_InformationRequested, _asn_ctx),
+	offsetof(struct RANAP_InformationRequested, present),
+	sizeof(((struct RANAP_InformationRequested *)0)->present),
+	asn_MAP_RANAP_InformationRequested_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_InformationRequested = {
+	"RANAP_InformationRequested",
+	"RANAP_InformationRequested",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_InformationRequested_constr_1,
+	asn_MBR_RANAP_InformationRequested_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_InformationRequested_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_InformationRequested.h b/src/ranap/RANAP_InformationRequested.h
new file mode 100644
index 0000000..227d0cc
--- /dev/null
+++ b/src/ranap/RANAP_InformationRequested.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_InformationRequested_H_
+#define	_RANAP_InformationRequested_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.h"
+#include "RANAP_RequestedMulticastServiceList.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_InformationRequested_PR {
+	RANAP_InformationRequested_PR_NOTHING,	/* No components present */
+	RANAP_InformationRequested_PR_requestedMBMSIPMulticastAddressandAPNRequest,
+	RANAP_InformationRequested_PR_requestedMulticastServiceList,
+	/* Extensions may appear below */
+	
+} RANAP_InformationRequested_PR;
+
+/* RANAP_InformationRequested */
+typedef struct RANAP_InformationRequested {
+	RANAP_InformationRequested_PR present;
+	union RANAP_InformationRequested_u {
+		RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_t	 requestedMBMSIPMulticastAddressandAPNRequest;
+		RANAP_RequestedMulticastServiceList_t	 requestedMulticastServiceList;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_InformationRequested_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_InformationRequested;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_InformationRequested_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_InformationTransferConfirmation.c b/src/ranap/RANAP_InformationTransferConfirmation.c
new file mode 100644
index 0000000..0850204
--- /dev/null
+++ b/src/ranap/RANAP_InformationTransferConfirmation.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_InformationTransferConfirmation.h"
+
+static int
+memb_informationTransferConfirmation_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_informationTransferConfirmation_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_informationTransferConfirmation_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_informationTransferConfirmation_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_informationTransferConfirmation_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_informationTransferConfirmation_ies_specs_2 = {
+	sizeof(struct informationTransferConfirmation_ies),
+	offsetof(struct informationTransferConfirmation_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_informationTransferConfirmation_ies_2 = {
+	"informationTransferConfirmation-ies",
+	"informationTransferConfirmation-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_informationTransferConfirmation_ies_tags_2,
+	sizeof(asn_DEF_informationTransferConfirmation_ies_tags_2)
+		/sizeof(asn_DEF_informationTransferConfirmation_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_informationTransferConfirmation_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_informationTransferConfirmation_ies_tags_2)
+		/sizeof(asn_DEF_informationTransferConfirmation_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_informationTransferConfirmation_ies_constr_2,
+	asn_MBR_informationTransferConfirmation_ies_2,
+	1,	/* Single element */
+	&asn_SPC_informationTransferConfirmation_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_InformationTransferConfirmation_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_InformationTransferConfirmation, informationTransferConfirmation_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_informationTransferConfirmation_ies_2,
+		memb_informationTransferConfirmation_ies_constraint_1,
+		&asn_PER_memb_informationTransferConfirmation_ies_constr_2,
+		0,
+		"informationTransferConfirmation-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_InformationTransferConfirmation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_InformationTransferConfirmation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* informationTransferConfirmation-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_InformationTransferConfirmation_specs_1 = {
+	sizeof(struct RANAP_InformationTransferConfirmation),
+	offsetof(struct RANAP_InformationTransferConfirmation, _asn_ctx),
+	asn_MAP_RANAP_InformationTransferConfirmation_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_InformationTransferConfirmation = {
+	"RANAP_InformationTransferConfirmation",
+	"RANAP_InformationTransferConfirmation",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_InformationTransferConfirmation_tags_1,
+	sizeof(asn_DEF_RANAP_InformationTransferConfirmation_tags_1)
+		/sizeof(asn_DEF_RANAP_InformationTransferConfirmation_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_InformationTransferConfirmation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_InformationTransferConfirmation_tags_1)
+		/sizeof(asn_DEF_RANAP_InformationTransferConfirmation_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_InformationTransferConfirmation_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_InformationTransferConfirmation_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_InformationTransferConfirmation.h b/src/ranap/RANAP_InformationTransferConfirmation.h
new file mode 100644
index 0000000..55a4247
--- /dev/null
+++ b/src/ranap/RANAP_InformationTransferConfirmation.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_InformationTransferConfirmation_H_
+#define	_RANAP_InformationTransferConfirmation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_InformationTransferConfirmation */
+typedef struct RANAP_InformationTransferConfirmation {
+	struct informationTransferConfirmation_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} informationTransferConfirmation_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_InformationTransferConfirmation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_InformationTransferConfirmation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_InformationTransferConfirmation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_InformationTransferFailure.c b/src/ranap/RANAP_InformationTransferFailure.c
new file mode 100644
index 0000000..5ee04d6
--- /dev/null
+++ b/src/ranap/RANAP_InformationTransferFailure.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_InformationTransferFailure.h"
+
+static int
+memb_informationTransferFailure_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_informationTransferFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_informationTransferFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_informationTransferFailure_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_informationTransferFailure_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_informationTransferFailure_ies_specs_2 = {
+	sizeof(struct informationTransferFailure_ies),
+	offsetof(struct informationTransferFailure_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_informationTransferFailure_ies_2 = {
+	"informationTransferFailure-ies",
+	"informationTransferFailure-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_informationTransferFailure_ies_tags_2,
+	sizeof(asn_DEF_informationTransferFailure_ies_tags_2)
+		/sizeof(asn_DEF_informationTransferFailure_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_informationTransferFailure_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_informationTransferFailure_ies_tags_2)
+		/sizeof(asn_DEF_informationTransferFailure_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_informationTransferFailure_ies_constr_2,
+	asn_MBR_informationTransferFailure_ies_2,
+	1,	/* Single element */
+	&asn_SPC_informationTransferFailure_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_InformationTransferFailure_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_InformationTransferFailure, informationTransferFailure_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_informationTransferFailure_ies_2,
+		memb_informationTransferFailure_ies_constraint_1,
+		&asn_PER_memb_informationTransferFailure_ies_constr_2,
+		0,
+		"informationTransferFailure-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_InformationTransferFailure_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_InformationTransferFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* informationTransferFailure-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_InformationTransferFailure_specs_1 = {
+	sizeof(struct RANAP_InformationTransferFailure),
+	offsetof(struct RANAP_InformationTransferFailure, _asn_ctx),
+	asn_MAP_RANAP_InformationTransferFailure_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_InformationTransferFailure = {
+	"RANAP_InformationTransferFailure",
+	"RANAP_InformationTransferFailure",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_InformationTransferFailure_tags_1,
+	sizeof(asn_DEF_RANAP_InformationTransferFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_InformationTransferFailure_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_InformationTransferFailure_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_InformationTransferFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_InformationTransferFailure_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_InformationTransferFailure_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_InformationTransferFailure_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_InformationTransferFailure.h b/src/ranap/RANAP_InformationTransferFailure.h
new file mode 100644
index 0000000..0a987c7
--- /dev/null
+++ b/src/ranap/RANAP_InformationTransferFailure.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_InformationTransferFailure_H_
+#define	_RANAP_InformationTransferFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_InformationTransferFailure */
+typedef struct RANAP_InformationTransferFailure {
+	struct informationTransferFailure_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} informationTransferFailure_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_InformationTransferFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_InformationTransferFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_InformationTransferFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_InformationTransferID.c b/src/ranap/RANAP_InformationTransferID.c
new file mode 100644
index 0000000..ff9be4d
--- /dev/null
+++ b/src/ranap/RANAP_InformationTransferID.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_InformationTransferID.h"
+
+int
+RANAP_InformationTransferID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 1048575l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_InformationTransferID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_InformationTransferID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_InformationTransferID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_InformationTransferID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_InformationTransferID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_InformationTransferID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_InformationTransferID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_InformationTransferID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_InformationTransferID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_InformationTransferID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_InformationTransferID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_InformationTransferID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_InformationTransferID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_InformationTransferID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_InformationTransferID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_InformationTransferID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_InformationTransferID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_InformationTransferID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_InformationTransferID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_InformationTransferID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_InformationTransferID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_InformationTransferID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 20, -1,  0l,  1048575l }	/* (0..1048575) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_InformationTransferID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_InformationTransferID = {
+	"RANAP_InformationTransferID",
+	"RANAP_InformationTransferID",
+	RANAP_InformationTransferID_free,
+	RANAP_InformationTransferID_print,
+	RANAP_InformationTransferID_constraint,
+	RANAP_InformationTransferID_decode_ber,
+	RANAP_InformationTransferID_encode_der,
+	RANAP_InformationTransferID_decode_xer,
+	RANAP_InformationTransferID_encode_xer,
+	RANAP_InformationTransferID_decode_uper,
+	RANAP_InformationTransferID_encode_uper,
+	RANAP_InformationTransferID_decode_aper,
+	RANAP_InformationTransferID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_InformationTransferID_tags_1,
+	sizeof(asn_DEF_RANAP_InformationTransferID_tags_1)
+		/sizeof(asn_DEF_RANAP_InformationTransferID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_InformationTransferID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_InformationTransferID_tags_1)
+		/sizeof(asn_DEF_RANAP_InformationTransferID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_InformationTransferID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_InformationTransferID.h b/src/ranap/RANAP_InformationTransferID.h
new file mode 100644
index 0000000..cc002aa
--- /dev/null
+++ b/src/ranap/RANAP_InformationTransferID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_InformationTransferID_H_
+#define	_RANAP_InformationTransferID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_InformationTransferID */
+typedef long	 RANAP_InformationTransferID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_InformationTransferID;
+asn_struct_free_f RANAP_InformationTransferID_free;
+asn_struct_print_f RANAP_InformationTransferID_print;
+asn_constr_check_f RANAP_InformationTransferID_constraint;
+ber_type_decoder_f RANAP_InformationTransferID_decode_ber;
+der_type_encoder_f RANAP_InformationTransferID_encode_der;
+xer_type_decoder_f RANAP_InformationTransferID_decode_xer;
+xer_type_encoder_f RANAP_InformationTransferID_encode_xer;
+per_type_decoder_f RANAP_InformationTransferID_decode_uper;
+per_type_encoder_f RANAP_InformationTransferID_encode_uper;
+per_type_decoder_f RANAP_InformationTransferID_decode_aper;
+per_type_encoder_f RANAP_InformationTransferID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_InformationTransferID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_InformationTransferIndication.c b/src/ranap/RANAP_InformationTransferIndication.c
new file mode 100644
index 0000000..4778799
--- /dev/null
+++ b/src/ranap/RANAP_InformationTransferIndication.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_InformationTransferIndication.h"
+
+static int
+memb_informationTransferIndication_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_informationTransferIndication_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_informationTransferIndication_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_informationTransferIndication_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_informationTransferIndication_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_informationTransferIndication_ies_specs_2 = {
+	sizeof(struct informationTransferIndication_ies),
+	offsetof(struct informationTransferIndication_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_informationTransferIndication_ies_2 = {
+	"informationTransferIndication-ies",
+	"informationTransferIndication-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_informationTransferIndication_ies_tags_2,
+	sizeof(asn_DEF_informationTransferIndication_ies_tags_2)
+		/sizeof(asn_DEF_informationTransferIndication_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_informationTransferIndication_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_informationTransferIndication_ies_tags_2)
+		/sizeof(asn_DEF_informationTransferIndication_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_informationTransferIndication_ies_constr_2,
+	asn_MBR_informationTransferIndication_ies_2,
+	1,	/* Single element */
+	&asn_SPC_informationTransferIndication_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_InformationTransferIndication_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_InformationTransferIndication, informationTransferIndication_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_informationTransferIndication_ies_2,
+		memb_informationTransferIndication_ies_constraint_1,
+		&asn_PER_memb_informationTransferIndication_ies_constr_2,
+		0,
+		"informationTransferIndication-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_InformationTransferIndication_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_InformationTransferIndication_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* informationTransferIndication-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_InformationTransferIndication_specs_1 = {
+	sizeof(struct RANAP_InformationTransferIndication),
+	offsetof(struct RANAP_InformationTransferIndication, _asn_ctx),
+	asn_MAP_RANAP_InformationTransferIndication_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_InformationTransferIndication = {
+	"RANAP_InformationTransferIndication",
+	"RANAP_InformationTransferIndication",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_InformationTransferIndication_tags_1,
+	sizeof(asn_DEF_RANAP_InformationTransferIndication_tags_1)
+		/sizeof(asn_DEF_RANAP_InformationTransferIndication_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_InformationTransferIndication_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_InformationTransferIndication_tags_1)
+		/sizeof(asn_DEF_RANAP_InformationTransferIndication_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_InformationTransferIndication_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_InformationTransferIndication_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_InformationTransferIndication.h b/src/ranap/RANAP_InformationTransferIndication.h
new file mode 100644
index 0000000..50a56b8
--- /dev/null
+++ b/src/ranap/RANAP_InformationTransferIndication.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_InformationTransferIndication_H_
+#define	_RANAP_InformationTransferIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_InformationTransferIndication */
+typedef struct RANAP_InformationTransferIndication {
+	struct informationTransferIndication_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} informationTransferIndication_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_InformationTransferIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_InformationTransferIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_InformationTransferIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_InformationTransferType.c b/src/ranap/RANAP_InformationTransferType.c
new file mode 100644
index 0000000..abbdd8a
--- /dev/null
+++ b/src/ranap/RANAP_InformationTransferType.c
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_InformationTransferType.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_InformationTransferType_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_InformationTransferType_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_InformationTransferType, choice.rNCTraceInformation),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RNCTraceInformation,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rNCTraceInformation"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_InformationTransferType_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rNCTraceInformation */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_InformationTransferType_specs_1 = {
+	sizeof(struct RANAP_InformationTransferType),
+	offsetof(struct RANAP_InformationTransferType, _asn_ctx),
+	offsetof(struct RANAP_InformationTransferType, present),
+	sizeof(((struct RANAP_InformationTransferType *)0)->present),
+	asn_MAP_RANAP_InformationTransferType_tag2el_1,
+	1,	/* Count of tags in the map */
+	0,
+	1	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_InformationTransferType = {
+	"RANAP_InformationTransferType",
+	"RANAP_InformationTransferType",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_InformationTransferType_constr_1,
+	asn_MBR_RANAP_InformationTransferType_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_InformationTransferType_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_InformationTransferType.h b/src/ranap/RANAP_InformationTransferType.h
new file mode 100644
index 0000000..93b41d2
--- /dev/null
+++ b/src/ranap/RANAP_InformationTransferType.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_InformationTransferType_H_
+#define	_RANAP_InformationTransferType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_RNCTraceInformation.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_InformationTransferType_PR {
+	RANAP_InformationTransferType_PR_NOTHING,	/* No components present */
+	RANAP_InformationTransferType_PR_rNCTraceInformation,
+	/* Extensions may appear below */
+	
+} RANAP_InformationTransferType_PR;
+
+/* RANAP_InformationTransferType */
+typedef struct RANAP_InformationTransferType {
+	RANAP_InformationTransferType_PR present;
+	union RANAP_InformationTransferType_u {
+		RANAP_RNCTraceInformation_t	 rNCTraceInformation;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_InformationTransferType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_InformationTransferType;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_InformationTransferType_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_InitialUE-Message.c b/src/ranap/RANAP_InitialUE-Message.c
new file mode 100644
index 0000000..12797ac
--- /dev/null
+++ b/src/ranap/RANAP_InitialUE-Message.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_InitialUE-Message.h"
+
+static int
+memb_initialUE_Message_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_initialUE_Message_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_initialUE_Message_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_initialUE_Message_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_initialUE_Message_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_initialUE_Message_ies_specs_2 = {
+	sizeof(struct initialUE_Message_ies),
+	offsetof(struct initialUE_Message_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_initialUE_Message_ies_2 = {
+	"initialUE-Message-ies",
+	"initialUE-Message-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_initialUE_Message_ies_tags_2,
+	sizeof(asn_DEF_initialUE_Message_ies_tags_2)
+		/sizeof(asn_DEF_initialUE_Message_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_initialUE_Message_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_initialUE_Message_ies_tags_2)
+		/sizeof(asn_DEF_initialUE_Message_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_initialUE_Message_ies_constr_2,
+	asn_MBR_initialUE_Message_ies_2,
+	1,	/* Single element */
+	&asn_SPC_initialUE_Message_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_InitialUE_Message_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_InitialUE_Message, initialUE_Message_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_initialUE_Message_ies_2,
+		memb_initialUE_Message_ies_constraint_1,
+		&asn_PER_memb_initialUE_Message_ies_constr_2,
+		0,
+		"initialUE-Message-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_InitialUE_Message_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_InitialUE_Message_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* initialUE-Message-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_InitialUE_Message_specs_1 = {
+	sizeof(struct RANAP_InitialUE_Message),
+	offsetof(struct RANAP_InitialUE_Message, _asn_ctx),
+	asn_MAP_RANAP_InitialUE_Message_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_InitialUE_Message = {
+	"RANAP_InitialUE-Message",
+	"RANAP_InitialUE-Message",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_InitialUE_Message_tags_1,
+	sizeof(asn_DEF_RANAP_InitialUE_Message_tags_1)
+		/sizeof(asn_DEF_RANAP_InitialUE_Message_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_InitialUE_Message_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_InitialUE_Message_tags_1)
+		/sizeof(asn_DEF_RANAP_InitialUE_Message_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_InitialUE_Message_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_InitialUE_Message_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_InitialUE-Message.h b/src/ranap/RANAP_InitialUE-Message.h
new file mode 100644
index 0000000..ff302f8
--- /dev/null
+++ b/src/ranap/RANAP_InitialUE-Message.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_InitialUE_Message_H_
+#define	_RANAP_InitialUE_Message_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_InitialUE-Message */
+typedef struct RANAP_InitialUE_Message {
+	struct initialUE_Message_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} initialUE_Message_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_InitialUE_Message_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_InitialUE_Message;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_InitialUE_Message_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_InitiatingMessage.c b/src/ranap/RANAP_InitiatingMessage.c
new file mode 100644
index 0000000..23d1cf0
--- /dev/null
+++ b/src/ranap/RANAP_InitiatingMessage.c
@@ -0,0 +1,81 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_InitiatingMessage.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_InitiatingMessage_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_InitiatingMessage, procedureCode),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ProcedureCode,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"procedureCode"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_InitiatingMessage, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Criticality,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"criticality"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_InitiatingMessage, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ANY,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_InitiatingMessage_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_InitiatingMessage_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_InitiatingMessage_specs_1 = {
+	sizeof(struct RANAP_InitiatingMessage),
+	offsetof(struct RANAP_InitiatingMessage, _asn_ctx),
+	asn_MAP_RANAP_InitiatingMessage_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_InitiatingMessage = {
+	"RANAP_InitiatingMessage",
+	"RANAP_InitiatingMessage",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_InitiatingMessage_tags_1,
+	sizeof(asn_DEF_RANAP_InitiatingMessage_tags_1)
+		/sizeof(asn_DEF_RANAP_InitiatingMessage_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_InitiatingMessage_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_InitiatingMessage_tags_1)
+		/sizeof(asn_DEF_RANAP_InitiatingMessage_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_InitiatingMessage_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_InitiatingMessage_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_InitiatingMessage.h b/src/ranap/RANAP_InitiatingMessage.h
new file mode 100644
index 0000000..c64dbff
--- /dev/null
+++ b/src/ranap/RANAP_InitiatingMessage.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_InitiatingMessage_H_
+#define	_RANAP_InitiatingMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ProcedureCode.h"
+#include "RANAP_Criticality.h"
+#include <ANY.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_InitiatingMessage */
+typedef struct RANAP_InitiatingMessage {
+	RANAP_ProcedureCode_t	 procedureCode;
+	RANAP_Criticality_t	 criticality;
+	ANY_t	 value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_InitiatingMessage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_InitiatingMessage;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_InitiatingMessage_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IntegrityProtectionAlgorithm.c b/src/ranap/RANAP_IntegrityProtectionAlgorithm.c
new file mode 100644
index 0000000..4d7b33b
--- /dev/null
+++ b/src/ranap/RANAP_IntegrityProtectionAlgorithm.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IntegrityProtectionAlgorithm.h"
+
+int
+RANAP_IntegrityProtectionAlgorithm_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 15l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_IntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_IntegrityProtectionAlgorithm_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_IntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_IntegrityProtectionAlgorithm_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IntegrityProtectionAlgorithm_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_IntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_IntegrityProtectionAlgorithm_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IntegrityProtectionAlgorithm_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_IntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_IntegrityProtectionAlgorithm_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IntegrityProtectionAlgorithm_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_IntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_IntegrityProtectionAlgorithm_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_IntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_IntegrityProtectionAlgorithm_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_IntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_IntegrityProtectionAlgorithm_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_IntegrityProtectionAlgorithm_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_IntegrityProtectionAlgorithm_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 4,  4,  0l,  15l }	/* (0..15) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_IntegrityProtectionAlgorithm_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IntegrityProtectionAlgorithm = {
+	"RANAP_IntegrityProtectionAlgorithm",
+	"RANAP_IntegrityProtectionAlgorithm",
+	RANAP_IntegrityProtectionAlgorithm_free,
+	RANAP_IntegrityProtectionAlgorithm_print,
+	RANAP_IntegrityProtectionAlgorithm_constraint,
+	RANAP_IntegrityProtectionAlgorithm_decode_ber,
+	RANAP_IntegrityProtectionAlgorithm_encode_der,
+	RANAP_IntegrityProtectionAlgorithm_decode_xer,
+	RANAP_IntegrityProtectionAlgorithm_encode_xer,
+	RANAP_IntegrityProtectionAlgorithm_decode_uper,
+	RANAP_IntegrityProtectionAlgorithm_encode_uper,
+	RANAP_IntegrityProtectionAlgorithm_decode_aper,
+	RANAP_IntegrityProtectionAlgorithm_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_IntegrityProtectionAlgorithm_tags_1,
+	sizeof(asn_DEF_RANAP_IntegrityProtectionAlgorithm_tags_1)
+		/sizeof(asn_DEF_RANAP_IntegrityProtectionAlgorithm_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_IntegrityProtectionAlgorithm_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_IntegrityProtectionAlgorithm_tags_1)
+		/sizeof(asn_DEF_RANAP_IntegrityProtectionAlgorithm_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_IntegrityProtectionAlgorithm_constr_1,
+	0, 0,	/* Defined elsewhere */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_IntegrityProtectionAlgorithm.h b/src/ranap/RANAP_IntegrityProtectionAlgorithm.h
new file mode 100644
index 0000000..7ed9284
--- /dev/null
+++ b/src/ranap/RANAP_IntegrityProtectionAlgorithm.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_IntegrityProtectionAlgorithm_H_
+#define	_RANAP_IntegrityProtectionAlgorithm_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_IntegrityProtectionAlgorithm {
+	RANAP_IntegrityProtectionAlgorithm_standard_UMTS_integrity_algorithm_UIA1	= 0,
+	RANAP_IntegrityProtectionAlgorithm_standard_UMTS_integrity_algorithm_UIA2	= 1,
+	RANAP_IntegrityProtectionAlgorithm_no_value	= 15
+} e_RANAP_IntegrityProtectionAlgorithm;
+
+/* RANAP_IntegrityProtectionAlgorithm */
+typedef long	 RANAP_IntegrityProtectionAlgorithm_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IntegrityProtectionAlgorithm;
+asn_struct_free_f RANAP_IntegrityProtectionAlgorithm_free;
+asn_struct_print_f RANAP_IntegrityProtectionAlgorithm_print;
+asn_constr_check_f RANAP_IntegrityProtectionAlgorithm_constraint;
+ber_type_decoder_f RANAP_IntegrityProtectionAlgorithm_decode_ber;
+der_type_encoder_f RANAP_IntegrityProtectionAlgorithm_encode_der;
+xer_type_decoder_f RANAP_IntegrityProtectionAlgorithm_decode_xer;
+xer_type_encoder_f RANAP_IntegrityProtectionAlgorithm_encode_xer;
+per_type_decoder_f RANAP_IntegrityProtectionAlgorithm_decode_uper;
+per_type_encoder_f RANAP_IntegrityProtectionAlgorithm_encode_uper;
+per_type_decoder_f RANAP_IntegrityProtectionAlgorithm_decode_aper;
+per_type_encoder_f RANAP_IntegrityProtectionAlgorithm_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IntegrityProtectionAlgorithm_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IntegrityProtectionInformation.c b/src/ranap/RANAP_IntegrityProtectionInformation.c
new file mode 100644
index 0000000..ede800e
--- /dev/null
+++ b/src/ranap/RANAP_IntegrityProtectionInformation.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IntegrityProtectionInformation.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_IntegrityProtectionInformation_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_IntegrityProtectionInformation, permittedAlgorithms),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PermittedIntegrityProtectionAlgorithms,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"permittedAlgorithms"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_IntegrityProtectionInformation, key),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IntegrityProtectionKey,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"key"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_IntegrityProtectionInformation, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_IntegrityProtectionInformation_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_IntegrityProtectionInformation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_IntegrityProtectionInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* permittedAlgorithms */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* key */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_IntegrityProtectionInformation_specs_1 = {
+	sizeof(struct RANAP_IntegrityProtectionInformation),
+	offsetof(struct RANAP_IntegrityProtectionInformation, _asn_ctx),
+	asn_MAP_RANAP_IntegrityProtectionInformation_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_IntegrityProtectionInformation_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IntegrityProtectionInformation = {
+	"RANAP_IntegrityProtectionInformation",
+	"RANAP_IntegrityProtectionInformation",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_IntegrityProtectionInformation_tags_1,
+	sizeof(asn_DEF_RANAP_IntegrityProtectionInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_IntegrityProtectionInformation_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_IntegrityProtectionInformation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_IntegrityProtectionInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_IntegrityProtectionInformation_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_IntegrityProtectionInformation_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_IntegrityProtectionInformation_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_IntegrityProtectionInformation.h b/src/ranap/RANAP_IntegrityProtectionInformation.h
new file mode 100644
index 0000000..7cb1f83
--- /dev/null
+++ b/src/ranap/RANAP_IntegrityProtectionInformation.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_IntegrityProtectionInformation_H_
+#define	_RANAP_IntegrityProtectionInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PermittedIntegrityProtectionAlgorithms.h"
+#include "RANAP_IntegrityProtectionKey.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_IntegrityProtectionInformation */
+typedef struct RANAP_IntegrityProtectionInformation {
+	RANAP_PermittedIntegrityProtectionAlgorithms_t	 permittedAlgorithms;
+	RANAP_IntegrityProtectionKey_t	 key;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_IntegrityProtectionInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IntegrityProtectionInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IntegrityProtectionInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IntegrityProtectionKey.c b/src/ranap/RANAP_IntegrityProtectionKey.c
new file mode 100644
index 0000000..ee94a2c
--- /dev/null
+++ b/src/ranap/RANAP_IntegrityProtectionKey.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IntegrityProtectionKey.h"
+
+int
+RANAP_IntegrityProtectionKey_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 128l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_IntegrityProtectionKey_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_BIT_STRING.free_struct;
+	td->print_struct   = asn_DEF_BIT_STRING.print_struct;
+	td->check_constraints = asn_DEF_BIT_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_BIT_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_BIT_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_BIT_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_BIT_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_BIT_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_BIT_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_BIT_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_BIT_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_BIT_STRING.per_constraints;
+	td->elements       = asn_DEF_BIT_STRING.elements;
+	td->elements_count = asn_DEF_BIT_STRING.elements_count;
+	td->specifics      = asn_DEF_BIT_STRING.specifics;
+}
+
+void
+RANAP_IntegrityProtectionKey_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_IntegrityProtectionKey_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_IntegrityProtectionKey_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IntegrityProtectionKey_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IntegrityProtectionKey_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_IntegrityProtectionKey_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_IntegrityProtectionKey_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IntegrityProtectionKey_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IntegrityProtectionKey_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_IntegrityProtectionKey_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_IntegrityProtectionKey_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IntegrityProtectionKey_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IntegrityProtectionKey_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_IntegrityProtectionKey_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_IntegrityProtectionKey_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_IntegrityProtectionKey_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_IntegrityProtectionKey_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_IntegrityProtectionKey_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_IntegrityProtectionKey_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_IntegrityProtectionKey_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_IntegrityProtectionKey_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  128l,  128l }	/* (SIZE(128..128)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_IntegrityProtectionKey_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IntegrityProtectionKey = {
+	"RANAP_IntegrityProtectionKey",
+	"RANAP_IntegrityProtectionKey",
+	RANAP_IntegrityProtectionKey_free,
+	RANAP_IntegrityProtectionKey_print,
+	RANAP_IntegrityProtectionKey_constraint,
+	RANAP_IntegrityProtectionKey_decode_ber,
+	RANAP_IntegrityProtectionKey_encode_der,
+	RANAP_IntegrityProtectionKey_decode_xer,
+	RANAP_IntegrityProtectionKey_encode_xer,
+	RANAP_IntegrityProtectionKey_decode_uper,
+	RANAP_IntegrityProtectionKey_encode_uper,
+	RANAP_IntegrityProtectionKey_decode_aper,
+	RANAP_IntegrityProtectionKey_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_IntegrityProtectionKey_tags_1,
+	sizeof(asn_DEF_RANAP_IntegrityProtectionKey_tags_1)
+		/sizeof(asn_DEF_RANAP_IntegrityProtectionKey_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_IntegrityProtectionKey_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_IntegrityProtectionKey_tags_1)
+		/sizeof(asn_DEF_RANAP_IntegrityProtectionKey_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_IntegrityProtectionKey_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_IntegrityProtectionKey.h b/src/ranap/RANAP_IntegrityProtectionKey.h
new file mode 100644
index 0000000..4010d71
--- /dev/null
+++ b/src/ranap/RANAP_IntegrityProtectionKey.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_IntegrityProtectionKey_H_
+#define	_RANAP_IntegrityProtectionKey_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_IntegrityProtectionKey */
+typedef BIT_STRING_t	 RANAP_IntegrityProtectionKey_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IntegrityProtectionKey;
+asn_struct_free_f RANAP_IntegrityProtectionKey_free;
+asn_struct_print_f RANAP_IntegrityProtectionKey_print;
+asn_constr_check_f RANAP_IntegrityProtectionKey_constraint;
+ber_type_decoder_f RANAP_IntegrityProtectionKey_decode_ber;
+der_type_encoder_f RANAP_IntegrityProtectionKey_encode_der;
+xer_type_decoder_f RANAP_IntegrityProtectionKey_decode_xer;
+xer_type_encoder_f RANAP_IntegrityProtectionKey_encode_xer;
+per_type_decoder_f RANAP_IntegrityProtectionKey_decode_uper;
+per_type_encoder_f RANAP_IntegrityProtectionKey_encode_uper;
+per_type_decoder_f RANAP_IntegrityProtectionKey_decode_aper;
+per_type_encoder_f RANAP_IntegrityProtectionKey_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IntegrityProtectionKey_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_InterSystemInformation-TransparentContainer.c b/src/ranap/RANAP_InterSystemInformation-TransparentContainer.c
new file mode 100644
index 0000000..31f62bd
--- /dev/null
+++ b/src/ranap/RANAP_InterSystemInformation-TransparentContainer.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_InterSystemInformation-TransparentContainer.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_InterSystemInformation_TransparentContainer_1[] = {
+	{ ATF_POINTER, 3, offsetof(struct RANAP_InterSystemInformation_TransparentContainer, downlinkCellLoadInformation),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CellLoadInformation,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"downlinkCellLoadInformation"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_InterSystemInformation_TransparentContainer, uplinkCellLoadInformation),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CellLoadInformation,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"uplinkCellLoadInformation"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_InterSystemInformation_TransparentContainer, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_InterSystemInformation_TransparentContainer_oms_1[] = { 0, 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_InterSystemInformation_TransparentContainer_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_InterSystemInformation_TransparentContainer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* downlinkCellLoadInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uplinkCellLoadInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_InterSystemInformation_TransparentContainer_specs_1 = {
+	sizeof(struct RANAP_InterSystemInformation_TransparentContainer),
+	offsetof(struct RANAP_InterSystemInformation_TransparentContainer, _asn_ctx),
+	asn_MAP_RANAP_InterSystemInformation_TransparentContainer_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_InterSystemInformation_TransparentContainer_oms_1,	/* Optional members */
+	3, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_InterSystemInformation_TransparentContainer = {
+	"RANAP_InterSystemInformation-TransparentContainer",
+	"RANAP_InterSystemInformation-TransparentContainer",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_InterSystemInformation_TransparentContainer_tags_1,
+	sizeof(asn_DEF_RANAP_InterSystemInformation_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_InterSystemInformation_TransparentContainer_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_InterSystemInformation_TransparentContainer_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_InterSystemInformation_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_InterSystemInformation_TransparentContainer_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_InterSystemInformation_TransparentContainer_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_InterSystemInformation_TransparentContainer_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_InterSystemInformation-TransparentContainer.h b/src/ranap/RANAP_InterSystemInformation-TransparentContainer.h
new file mode 100644
index 0000000..e53829b
--- /dev/null
+++ b/src/ranap/RANAP_InterSystemInformation-TransparentContainer.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_InterSystemInformation_TransparentContainer_H_
+#define	_RANAP_InterSystemInformation_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_CellLoadInformation.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_InterSystemInformation-TransparentContainer */
+typedef struct RANAP_InterSystemInformation_TransparentContainer {
+	RANAP_CellLoadInformation_t	*downlinkCellLoadInformation	/* OPTIONAL */;
+	RANAP_CellLoadInformation_t	*uplinkCellLoadInformation	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_InterSystemInformation_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_InterSystemInformation_TransparentContainer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_InterSystemInformation_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_InterSystemInformationTransferType.c b/src/ranap/RANAP_InterSystemInformationTransferType.c
new file mode 100644
index 0000000..b66c82f
--- /dev/null
+++ b/src/ranap/RANAP_InterSystemInformationTransferType.c
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_InterSystemInformationTransferType.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_InterSystemInformationTransferType_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_InterSystemInformationTransferType_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_InterSystemInformationTransferType, choice.rIM_Transfer),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RIM_Transfer,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rIM-Transfer"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_InterSystemInformationTransferType_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rIM-Transfer */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_InterSystemInformationTransferType_specs_1 = {
+	sizeof(struct RANAP_InterSystemInformationTransferType),
+	offsetof(struct RANAP_InterSystemInformationTransferType, _asn_ctx),
+	offsetof(struct RANAP_InterSystemInformationTransferType, present),
+	sizeof(((struct RANAP_InterSystemInformationTransferType *)0)->present),
+	asn_MAP_RANAP_InterSystemInformationTransferType_tag2el_1,
+	1,	/* Count of tags in the map */
+	0,
+	1	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_InterSystemInformationTransferType = {
+	"RANAP_InterSystemInformationTransferType",
+	"RANAP_InterSystemInformationTransferType",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_InterSystemInformationTransferType_constr_1,
+	asn_MBR_RANAP_InterSystemInformationTransferType_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_InterSystemInformationTransferType_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_InterSystemInformationTransferType.h b/src/ranap/RANAP_InterSystemInformationTransferType.h
new file mode 100644
index 0000000..d3f5225
--- /dev/null
+++ b/src/ranap/RANAP_InterSystemInformationTransferType.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_InterSystemInformationTransferType_H_
+#define	_RANAP_InterSystemInformationTransferType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_RIM-Transfer.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_InterSystemInformationTransferType_PR {
+	RANAP_InterSystemInformationTransferType_PR_NOTHING,	/* No components present */
+	RANAP_InterSystemInformationTransferType_PR_rIM_Transfer,
+	/* Extensions may appear below */
+	
+} RANAP_InterSystemInformationTransferType_PR;
+
+/* RANAP_InterSystemInformationTransferType */
+typedef struct RANAP_InterSystemInformationTransferType {
+	RANAP_InterSystemInformationTransferType_PR present;
+	union RANAP_InterSystemInformationTransferType_u {
+		RANAP_RIM_Transfer_t	 rIM_Transfer;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_InterSystemInformationTransferType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_InterSystemInformationTransferType;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_InterSystemInformationTransferType_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_InterfacesToTraceItem.c b/src/ranap/RANAP_InterfacesToTraceItem.c
new file mode 100644
index 0000000..bd97bdc
--- /dev/null
+++ b/src/ranap/RANAP_InterfacesToTraceItem.c
@@ -0,0 +1,240 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_InterfacesToTraceItem.h"
+
+static int
+interface_2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+interface_2_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+static void
+interface_2_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	interface_2_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+static int
+interface_2_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	interface_2_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+static asn_dec_rval_t
+interface_2_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	interface_2_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+static asn_enc_rval_t
+interface_2_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	interface_2_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+static asn_dec_rval_t
+interface_2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	interface_2_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+static asn_enc_rval_t
+interface_2_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	interface_2_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+static asn_dec_rval_t
+interface_2_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	interface_2_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_enc_rval_t
+interface_2_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	interface_2_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_enc_rval_t
+interface_2_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	interface_2_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_dec_rval_t
+interface_2_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	interface_2_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_interface_constr_2 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0l,  4l }	/* (0..4,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_interface_value2enum_2[] = {
+	{ 0,	5,	"iu-cs" },
+	{ 1,	5,	"iu-ps" },
+	{ 2,	3,	"iur" },
+	{ 3,	3,	"iub" },
+	{ 4,	2,	"uu" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_interface_enum2value_2[] = {
+	0,	/* iu-cs(0) */
+	1,	/* iu-ps(1) */
+	3,	/* iub(3) */
+	2,	/* iur(2) */
+	4	/* uu(4) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_interface_specs_2 = {
+	asn_MAP_interface_value2enum_2,	/* "tag" => N; sorted by tag */
+	asn_MAP_interface_enum2value_2,	/* N => "tag"; sorted by N */
+	5,	/* Number of elements in the maps */
+	6,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_interface_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_interface_2 = {
+	"interface",
+	"interface",
+	interface_2_free,
+	interface_2_print,
+	interface_2_constraint,
+	interface_2_decode_ber,
+	interface_2_encode_der,
+	interface_2_decode_xer,
+	interface_2_encode_xer,
+	interface_2_decode_uper,
+	interface_2_encode_uper,
+	interface_2_decode_aper,
+	interface_2_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_interface_tags_2,
+	sizeof(asn_DEF_interface_tags_2)
+		/sizeof(asn_DEF_interface_tags_2[0]) - 1, /* 1 */
+	asn_DEF_interface_tags_2,	/* Same as above */
+	sizeof(asn_DEF_interface_tags_2)
+		/sizeof(asn_DEF_interface_tags_2[0]), /* 2 */
+	&asn_PER_type_interface_constr_2,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_interface_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_InterfacesToTraceItem_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_InterfacesToTraceItem, interface),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_interface_2,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"interface"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_InterfacesToTraceItem, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_InterfacesToTraceItem_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_InterfacesToTraceItem_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_InterfacesToTraceItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interface */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_InterfacesToTraceItem_specs_1 = {
+	sizeof(struct RANAP_InterfacesToTraceItem),
+	offsetof(struct RANAP_InterfacesToTraceItem, _asn_ctx),
+	asn_MAP_RANAP_InterfacesToTraceItem_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_InterfacesToTraceItem_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_InterfacesToTraceItem = {
+	"RANAP_InterfacesToTraceItem",
+	"RANAP_InterfacesToTraceItem",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_InterfacesToTraceItem_tags_1,
+	sizeof(asn_DEF_RANAP_InterfacesToTraceItem_tags_1)
+		/sizeof(asn_DEF_RANAP_InterfacesToTraceItem_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_InterfacesToTraceItem_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_InterfacesToTraceItem_tags_1)
+		/sizeof(asn_DEF_RANAP_InterfacesToTraceItem_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_InterfacesToTraceItem_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_InterfacesToTraceItem_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_InterfacesToTraceItem.h b/src/ranap/RANAP_InterfacesToTraceItem.h
new file mode 100644
index 0000000..5396375
--- /dev/null
+++ b/src/ranap/RANAP_InterfacesToTraceItem.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_InterfacesToTraceItem_H_
+#define	_RANAP_InterfacesToTraceItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum interface {
+	interface_iu_cs	= 0,
+	interface_iu_ps	= 1,
+	interface_iur	= 2,
+	interface_iub	= 3,
+	interface_uu	= 4
+	/*
+	 * Enumeration is extensible
+	 */
+} e_interface;
+
+/* RANAP_InterfacesToTraceItem */
+typedef struct RANAP_InterfacesToTraceItem {
+	long	 interface;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_InterfacesToTraceItem_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_interface_2;	// (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_InterfacesToTraceItem;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_InterfacesToTraceItem_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Iu-ReleaseCommand.c b/src/ranap/RANAP_Iu-ReleaseCommand.c
new file mode 100644
index 0000000..2d64a5b
--- /dev/null
+++ b/src/ranap/RANAP_Iu-ReleaseCommand.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_Iu-ReleaseCommand.h"
+
+static int
+memb_iu_ReleaseCommand_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_iu_ReleaseCommand_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_iu_ReleaseCommand_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_iu_ReleaseCommand_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_iu_ReleaseCommand_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_iu_ReleaseCommand_ies_specs_2 = {
+	sizeof(struct iu_ReleaseCommand_ies),
+	offsetof(struct iu_ReleaseCommand_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_iu_ReleaseCommand_ies_2 = {
+	"iu-ReleaseCommand-ies",
+	"iu-ReleaseCommand-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_iu_ReleaseCommand_ies_tags_2,
+	sizeof(asn_DEF_iu_ReleaseCommand_ies_tags_2)
+		/sizeof(asn_DEF_iu_ReleaseCommand_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_iu_ReleaseCommand_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_iu_ReleaseCommand_ies_tags_2)
+		/sizeof(asn_DEF_iu_ReleaseCommand_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_iu_ReleaseCommand_ies_constr_2,
+	asn_MBR_iu_ReleaseCommand_ies_2,
+	1,	/* Single element */
+	&asn_SPC_iu_ReleaseCommand_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_Iu_ReleaseCommand_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Iu_ReleaseCommand, iu_ReleaseCommand_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_iu_ReleaseCommand_ies_2,
+		memb_iu_ReleaseCommand_ies_constraint_1,
+		&asn_PER_memb_iu_ReleaseCommand_ies_constr_2,
+		0,
+		"iu-ReleaseCommand-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Iu_ReleaseCommand_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Iu_ReleaseCommand_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iu-ReleaseCommand-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Iu_ReleaseCommand_specs_1 = {
+	sizeof(struct RANAP_Iu_ReleaseCommand),
+	offsetof(struct RANAP_Iu_ReleaseCommand, _asn_ctx),
+	asn_MAP_RANAP_Iu_ReleaseCommand_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Iu_ReleaseCommand = {
+	"RANAP_Iu-ReleaseCommand",
+	"RANAP_Iu-ReleaseCommand",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Iu_ReleaseCommand_tags_1,
+	sizeof(asn_DEF_RANAP_Iu_ReleaseCommand_tags_1)
+		/sizeof(asn_DEF_RANAP_Iu_ReleaseCommand_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Iu_ReleaseCommand_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Iu_ReleaseCommand_tags_1)
+		/sizeof(asn_DEF_RANAP_Iu_ReleaseCommand_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Iu_ReleaseCommand_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_Iu_ReleaseCommand_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Iu-ReleaseCommand.h b/src/ranap/RANAP_Iu-ReleaseCommand.h
new file mode 100644
index 0000000..938c5a0
--- /dev/null
+++ b/src/ranap/RANAP_Iu-ReleaseCommand.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_Iu_ReleaseCommand_H_
+#define	_RANAP_Iu_ReleaseCommand_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Iu-ReleaseCommand */
+typedef struct RANAP_Iu_ReleaseCommand {
+	struct iu_ReleaseCommand_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} iu_ReleaseCommand_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Iu_ReleaseCommand_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Iu_ReleaseCommand;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Iu_ReleaseCommand_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Iu-ReleaseComplete.c b/src/ranap/RANAP_Iu-ReleaseComplete.c
new file mode 100644
index 0000000..3834835
--- /dev/null
+++ b/src/ranap/RANAP_Iu-ReleaseComplete.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_Iu-ReleaseComplete.h"
+
+static int
+memb_iu_ReleaseComplete_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_iu_ReleaseComplete_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_iu_ReleaseComplete_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_iu_ReleaseComplete_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_iu_ReleaseComplete_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_iu_ReleaseComplete_ies_specs_2 = {
+	sizeof(struct iu_ReleaseComplete_ies),
+	offsetof(struct iu_ReleaseComplete_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_iu_ReleaseComplete_ies_2 = {
+	"iu-ReleaseComplete-ies",
+	"iu-ReleaseComplete-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_iu_ReleaseComplete_ies_tags_2,
+	sizeof(asn_DEF_iu_ReleaseComplete_ies_tags_2)
+		/sizeof(asn_DEF_iu_ReleaseComplete_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_iu_ReleaseComplete_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_iu_ReleaseComplete_ies_tags_2)
+		/sizeof(asn_DEF_iu_ReleaseComplete_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_iu_ReleaseComplete_ies_constr_2,
+	asn_MBR_iu_ReleaseComplete_ies_2,
+	1,	/* Single element */
+	&asn_SPC_iu_ReleaseComplete_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_Iu_ReleaseComplete_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Iu_ReleaseComplete, iu_ReleaseComplete_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_iu_ReleaseComplete_ies_2,
+		memb_iu_ReleaseComplete_ies_constraint_1,
+		&asn_PER_memb_iu_ReleaseComplete_ies_constr_2,
+		0,
+		"iu-ReleaseComplete-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Iu_ReleaseComplete_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Iu_ReleaseComplete_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iu-ReleaseComplete-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Iu_ReleaseComplete_specs_1 = {
+	sizeof(struct RANAP_Iu_ReleaseComplete),
+	offsetof(struct RANAP_Iu_ReleaseComplete, _asn_ctx),
+	asn_MAP_RANAP_Iu_ReleaseComplete_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Iu_ReleaseComplete = {
+	"RANAP_Iu-ReleaseComplete",
+	"RANAP_Iu-ReleaseComplete",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Iu_ReleaseComplete_tags_1,
+	sizeof(asn_DEF_RANAP_Iu_ReleaseComplete_tags_1)
+		/sizeof(asn_DEF_RANAP_Iu_ReleaseComplete_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Iu_ReleaseComplete_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Iu_ReleaseComplete_tags_1)
+		/sizeof(asn_DEF_RANAP_Iu_ReleaseComplete_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Iu_ReleaseComplete_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_Iu_ReleaseComplete_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Iu-ReleaseComplete.h b/src/ranap/RANAP_Iu-ReleaseComplete.h
new file mode 100644
index 0000000..215b4c7
--- /dev/null
+++ b/src/ranap/RANAP_Iu-ReleaseComplete.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_Iu_ReleaseComplete_H_
+#define	_RANAP_Iu_ReleaseComplete_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Iu-ReleaseComplete */
+typedef struct RANAP_Iu_ReleaseComplete {
+	struct iu_ReleaseComplete_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} iu_ReleaseComplete_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Iu_ReleaseComplete_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Iu_ReleaseComplete;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Iu_ReleaseComplete_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Iu-ReleaseRequest.c b/src/ranap/RANAP_Iu-ReleaseRequest.c
new file mode 100644
index 0000000..690db70
--- /dev/null
+++ b/src/ranap/RANAP_Iu-ReleaseRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_Iu-ReleaseRequest.h"
+
+static int
+memb_iu_ReleaseRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_iu_ReleaseRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_iu_ReleaseRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_iu_ReleaseRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_iu_ReleaseRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_iu_ReleaseRequest_ies_specs_2 = {
+	sizeof(struct iu_ReleaseRequest_ies),
+	offsetof(struct iu_ReleaseRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_iu_ReleaseRequest_ies_2 = {
+	"iu-ReleaseRequest-ies",
+	"iu-ReleaseRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_iu_ReleaseRequest_ies_tags_2,
+	sizeof(asn_DEF_iu_ReleaseRequest_ies_tags_2)
+		/sizeof(asn_DEF_iu_ReleaseRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_iu_ReleaseRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_iu_ReleaseRequest_ies_tags_2)
+		/sizeof(asn_DEF_iu_ReleaseRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_iu_ReleaseRequest_ies_constr_2,
+	asn_MBR_iu_ReleaseRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_iu_ReleaseRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_Iu_ReleaseRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Iu_ReleaseRequest, iu_ReleaseRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_iu_ReleaseRequest_ies_2,
+		memb_iu_ReleaseRequest_ies_constraint_1,
+		&asn_PER_memb_iu_ReleaseRequest_ies_constr_2,
+		0,
+		"iu-ReleaseRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Iu_ReleaseRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Iu_ReleaseRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iu-ReleaseRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Iu_ReleaseRequest_specs_1 = {
+	sizeof(struct RANAP_Iu_ReleaseRequest),
+	offsetof(struct RANAP_Iu_ReleaseRequest, _asn_ctx),
+	asn_MAP_RANAP_Iu_ReleaseRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Iu_ReleaseRequest = {
+	"RANAP_Iu-ReleaseRequest",
+	"RANAP_Iu-ReleaseRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Iu_ReleaseRequest_tags_1,
+	sizeof(asn_DEF_RANAP_Iu_ReleaseRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_Iu_ReleaseRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Iu_ReleaseRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Iu_ReleaseRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_Iu_ReleaseRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Iu_ReleaseRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_Iu_ReleaseRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Iu-ReleaseRequest.h b/src/ranap/RANAP_Iu-ReleaseRequest.h
new file mode 100644
index 0000000..45963f0
--- /dev/null
+++ b/src/ranap/RANAP_Iu-ReleaseRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_Iu_ReleaseRequest_H_
+#define	_RANAP_Iu_ReleaseRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Iu-ReleaseRequest */
+typedef struct RANAP_Iu_ReleaseRequest {
+	struct iu_ReleaseRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} iu_ReleaseRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Iu_ReleaseRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Iu_ReleaseRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Iu_ReleaseRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IuSignallingConnectionIdentifier.c b/src/ranap/RANAP_IuSignallingConnectionIdentifier.c
new file mode 100644
index 0000000..2f23007
--- /dev/null
+++ b/src/ranap/RANAP_IuSignallingConnectionIdentifier.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IuSignallingConnectionIdentifier.h"
+
+int
+RANAP_IuSignallingConnectionIdentifier_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 24l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_IuSignallingConnectionIdentifier_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_BIT_STRING.free_struct;
+	td->print_struct   = asn_DEF_BIT_STRING.print_struct;
+	td->check_constraints = asn_DEF_BIT_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_BIT_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_BIT_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_BIT_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_BIT_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_BIT_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_BIT_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_BIT_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_BIT_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_BIT_STRING.per_constraints;
+	td->elements       = asn_DEF_BIT_STRING.elements;
+	td->elements_count = asn_DEF_BIT_STRING.elements_count;
+	td->specifics      = asn_DEF_BIT_STRING.specifics;
+}
+
+void
+RANAP_IuSignallingConnectionIdentifier_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_IuSignallingConnectionIdentifier_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_IuSignallingConnectionIdentifier_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IuSignallingConnectionIdentifier_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IuSignallingConnectionIdentifier_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_IuSignallingConnectionIdentifier_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_IuSignallingConnectionIdentifier_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IuSignallingConnectionIdentifier_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IuSignallingConnectionIdentifier_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_IuSignallingConnectionIdentifier_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_IuSignallingConnectionIdentifier_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_IuSignallingConnectionIdentifier_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_IuSignallingConnectionIdentifier_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_IuSignallingConnectionIdentifier_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_IuSignallingConnectionIdentifier_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_IuSignallingConnectionIdentifier_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_IuSignallingConnectionIdentifier_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_IuSignallingConnectionIdentifier_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_IuSignallingConnectionIdentifier_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_IuSignallingConnectionIdentifier_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_IuSignallingConnectionIdentifier_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  24l,  24l }	/* (SIZE(24..24)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_IuSignallingConnectionIdentifier_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IuSignallingConnectionIdentifier = {
+	"RANAP_IuSignallingConnectionIdentifier",
+	"RANAP_IuSignallingConnectionIdentifier",
+	RANAP_IuSignallingConnectionIdentifier_free,
+	RANAP_IuSignallingConnectionIdentifier_print,
+	RANAP_IuSignallingConnectionIdentifier_constraint,
+	RANAP_IuSignallingConnectionIdentifier_decode_ber,
+	RANAP_IuSignallingConnectionIdentifier_encode_der,
+	RANAP_IuSignallingConnectionIdentifier_decode_xer,
+	RANAP_IuSignallingConnectionIdentifier_encode_xer,
+	RANAP_IuSignallingConnectionIdentifier_decode_uper,
+	RANAP_IuSignallingConnectionIdentifier_encode_uper,
+	RANAP_IuSignallingConnectionIdentifier_decode_aper,
+	RANAP_IuSignallingConnectionIdentifier_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_IuSignallingConnectionIdentifier_tags_1,
+	sizeof(asn_DEF_RANAP_IuSignallingConnectionIdentifier_tags_1)
+		/sizeof(asn_DEF_RANAP_IuSignallingConnectionIdentifier_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_IuSignallingConnectionIdentifier_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_IuSignallingConnectionIdentifier_tags_1)
+		/sizeof(asn_DEF_RANAP_IuSignallingConnectionIdentifier_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_IuSignallingConnectionIdentifier_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_IuSignallingConnectionIdentifier.h b/src/ranap/RANAP_IuSignallingConnectionIdentifier.h
new file mode 100644
index 0000000..b334891
--- /dev/null
+++ b/src/ranap/RANAP_IuSignallingConnectionIdentifier.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_IuSignallingConnectionIdentifier_H_
+#define	_RANAP_IuSignallingConnectionIdentifier_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_IuSignallingConnectionIdentifier */
+typedef BIT_STRING_t	 RANAP_IuSignallingConnectionIdentifier_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IuSignallingConnectionIdentifier;
+asn_struct_free_f RANAP_IuSignallingConnectionIdentifier_free;
+asn_struct_print_f RANAP_IuSignallingConnectionIdentifier_print;
+asn_constr_check_f RANAP_IuSignallingConnectionIdentifier_constraint;
+ber_type_decoder_f RANAP_IuSignallingConnectionIdentifier_decode_ber;
+der_type_encoder_f RANAP_IuSignallingConnectionIdentifier_encode_der;
+xer_type_decoder_f RANAP_IuSignallingConnectionIdentifier_decode_xer;
+xer_type_encoder_f RANAP_IuSignallingConnectionIdentifier_encode_xer;
+per_type_decoder_f RANAP_IuSignallingConnectionIdentifier_decode_uper;
+per_type_encoder_f RANAP_IuSignallingConnectionIdentifier_encode_uper;
+per_type_decoder_f RANAP_IuSignallingConnectionIdentifier_decode_aper;
+per_type_encoder_f RANAP_IuSignallingConnectionIdentifier_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IuSignallingConnectionIdentifier_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_IuTransportAssociation.c b/src/ranap/RANAP_IuTransportAssociation.c
new file mode 100644
index 0000000..ee7b796
--- /dev/null
+++ b/src/ranap/RANAP_IuTransportAssociation.c
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IuTransportAssociation.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_IuTransportAssociation_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_IuTransportAssociation_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_IuTransportAssociation, choice.gTP_TEI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GTP_TEI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"gTP-TEI"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_IuTransportAssociation, choice.bindingID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_BindingID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"bindingID"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_IuTransportAssociation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gTP-TEI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* bindingID */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_IuTransportAssociation_specs_1 = {
+	sizeof(struct RANAP_IuTransportAssociation),
+	offsetof(struct RANAP_IuTransportAssociation, _asn_ctx),
+	offsetof(struct RANAP_IuTransportAssociation, present),
+	sizeof(((struct RANAP_IuTransportAssociation *)0)->present),
+	asn_MAP_RANAP_IuTransportAssociation_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IuTransportAssociation = {
+	"RANAP_IuTransportAssociation",
+	"RANAP_IuTransportAssociation",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_IuTransportAssociation_constr_1,
+	asn_MBR_RANAP_IuTransportAssociation_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_IuTransportAssociation_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_IuTransportAssociation.h b/src/ranap/RANAP_IuTransportAssociation.h
new file mode 100644
index 0000000..c39705b
--- /dev/null
+++ b/src/ranap/RANAP_IuTransportAssociation.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_IuTransportAssociation_H_
+#define	_RANAP_IuTransportAssociation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_GTP-TEI.h"
+#include "RANAP_BindingID.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_IuTransportAssociation_PR {
+	RANAP_IuTransportAssociation_PR_NOTHING,	/* No components present */
+	RANAP_IuTransportAssociation_PR_gTP_TEI,
+	RANAP_IuTransportAssociation_PR_bindingID,
+	/* Extensions may appear below */
+	
+} RANAP_IuTransportAssociation_PR;
+
+/* RANAP_IuTransportAssociation */
+typedef struct RANAP_IuTransportAssociation {
+	RANAP_IuTransportAssociation_PR present;
+	union RANAP_IuTransportAssociation_u {
+		RANAP_GTP_TEI_t	 gTP_TEI;
+		RANAP_BindingID_t	 bindingID;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_IuTransportAssociation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_IuTransportAssociation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_IuTransportAssociation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_KeyStatus.c b/src/ranap/RANAP_KeyStatus.c
new file mode 100644
index 0000000..0ff0189
--- /dev/null
+++ b/src/ranap/RANAP_KeyStatus.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_KeyStatus.h"
+
+int
+RANAP_KeyStatus_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_KeyStatus_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_KeyStatus_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_KeyStatus_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_KeyStatus_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_KeyStatus_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_KeyStatus_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_KeyStatus_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_KeyStatus_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_KeyStatus_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_KeyStatus_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_KeyStatus_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_KeyStatus_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_KeyStatus_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_KeyStatus_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_KeyStatus_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_KeyStatus_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_KeyStatus_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_KeyStatus_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_KeyStatus_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_KeyStatus_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_KeyStatus_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_KeyStatus_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_KeyStatus_value2enum_1[] = {
+	{ 0,	3,	"old" },
+	{ 1,	3,	"new" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_KeyStatus_enum2value_1[] = {
+	1,	/* new(1) */
+	0	/* old(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_KeyStatus_specs_1 = {
+	asn_MAP_RANAP_KeyStatus_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_KeyStatus_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_KeyStatus_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_KeyStatus = {
+	"RANAP_KeyStatus",
+	"RANAP_KeyStatus",
+	RANAP_KeyStatus_free,
+	RANAP_KeyStatus_print,
+	RANAP_KeyStatus_constraint,
+	RANAP_KeyStatus_decode_ber,
+	RANAP_KeyStatus_encode_der,
+	RANAP_KeyStatus_decode_xer,
+	RANAP_KeyStatus_encode_xer,
+	RANAP_KeyStatus_decode_uper,
+	RANAP_KeyStatus_encode_uper,
+	RANAP_KeyStatus_decode_aper,
+	RANAP_KeyStatus_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_KeyStatus_tags_1,
+	sizeof(asn_DEF_RANAP_KeyStatus_tags_1)
+		/sizeof(asn_DEF_RANAP_KeyStatus_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_KeyStatus_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_KeyStatus_tags_1)
+		/sizeof(asn_DEF_RANAP_KeyStatus_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_KeyStatus_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_KeyStatus_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_KeyStatus.h b/src/ranap/RANAP_KeyStatus.h
new file mode 100644
index 0000000..1b61813
--- /dev/null
+++ b/src/ranap/RANAP_KeyStatus.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_KeyStatus_H_
+#define	_RANAP_KeyStatus_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_KeyStatus {
+	RANAP_KeyStatus_old	= 0,
+	RANAP_KeyStatus_new	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_KeyStatus;
+
+/* RANAP_KeyStatus */
+typedef long	 RANAP_KeyStatus_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_KeyStatus;
+asn_struct_free_f RANAP_KeyStatus_free;
+asn_struct_print_f RANAP_KeyStatus_print;
+asn_constr_check_f RANAP_KeyStatus_constraint;
+ber_type_decoder_f RANAP_KeyStatus_decode_ber;
+der_type_encoder_f RANAP_KeyStatus_encode_der;
+xer_type_decoder_f RANAP_KeyStatus_decode_xer;
+xer_type_encoder_f RANAP_KeyStatus_encode_xer;
+per_type_decoder_f RANAP_KeyStatus_decode_uper;
+per_type_encoder_f RANAP_KeyStatus_encode_uper;
+per_type_decoder_f RANAP_KeyStatus_decode_aper;
+per_type_encoder_f RANAP_KeyStatus_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_KeyStatus_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_L3-Information.c b/src/ranap/RANAP_L3-Information.c
new file mode 100644
index 0000000..be098c5
--- /dev/null
+++ b/src/ranap/RANAP_L3-Information.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_L3-Information.h"
+
+int
+RANAP_L3_Information_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_L3_Information_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_L3_Information_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_L3_Information_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_L3_Information_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_L3_Information_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_L3_Information_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_L3_Information_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_L3_Information_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_L3_Information_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_L3_Information_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_L3_Information_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_L3_Information_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_L3_Information_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_L3_Information_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_L3_Information_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_L3_Information_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_L3_Information_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_L3_Information_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_L3_Information_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_L3_Information_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_L3_Information_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_L3_Information_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_L3_Information = {
+	"RANAP_L3-Information",
+	"RANAP_L3-Information",
+	RANAP_L3_Information_free,
+	RANAP_L3_Information_print,
+	RANAP_L3_Information_constraint,
+	RANAP_L3_Information_decode_ber,
+	RANAP_L3_Information_encode_der,
+	RANAP_L3_Information_decode_xer,
+	RANAP_L3_Information_encode_xer,
+	RANAP_L3_Information_decode_uper,
+	RANAP_L3_Information_encode_uper,
+	RANAP_L3_Information_decode_aper,
+	RANAP_L3_Information_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_L3_Information_tags_1,
+	sizeof(asn_DEF_RANAP_L3_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_L3_Information_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_L3_Information_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_L3_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_L3_Information_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_L3-Information.h b/src/ranap/RANAP_L3-Information.h
new file mode 100644
index 0000000..122c64d
--- /dev/null
+++ b/src/ranap/RANAP_L3-Information.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_L3_Information_H_
+#define	_RANAP_L3_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_L3-Information */
+typedef OCTET_STRING_t	 RANAP_L3_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_L3_Information;
+asn_struct_free_f RANAP_L3_Information_free;
+asn_struct_print_f RANAP_L3_Information_print;
+asn_constr_check_f RANAP_L3_Information_constraint;
+ber_type_decoder_f RANAP_L3_Information_decode_ber;
+der_type_encoder_f RANAP_L3_Information_encode_der;
+xer_type_decoder_f RANAP_L3_Information_decode_xer;
+xer_type_encoder_f RANAP_L3_Information_encode_xer;
+per_type_decoder_f RANAP_L3_Information_decode_uper;
+per_type_encoder_f RANAP_L3_Information_encode_uper;
+per_type_decoder_f RANAP_L3_Information_decode_aper;
+per_type_encoder_f RANAP_L3_Information_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_L3_Information_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LA-LIST.c b/src/ranap/RANAP_LA-LIST.c
new file mode 100644
index 0000000..4526c6a
--- /dev/null
+++ b/src/ranap/RANAP_LA-LIST.c
@@ -0,0 +1,135 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_LA-LIST.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_LA_LIST_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16, -1,  1l,  65536l }	/* (SIZE(1..65536)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_MemberA_2[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct MemberA, lAC),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_LAC,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"lAC"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct MemberA, listOF_SNAs),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ListOF_SNAs,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"listOF-SNAs"
+		},
+	{ ATF_POINTER, 1, offsetof(struct MemberA, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_MemberA_oms_2[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_MemberA_tags_2[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MemberA_tag2el_2[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lAC */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* listOF-SNAs */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_MemberA_specs_2 = {
+	sizeof(struct MemberA),
+	offsetof(struct MemberA, _asn_ctx),
+	asn_MAP_MemberA_tag2el_2,
+	3,	/* Count of tags in the map */
+	asn_MAP_MemberA_oms_2,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_MemberA_2 = {
+	"SEQUENCE",
+	"SEQUENCE",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_MemberA_tags_2,
+	sizeof(asn_DEF_MemberA_tags_2)
+		/sizeof(asn_DEF_MemberA_tags_2[0]), /* 1 */
+	asn_DEF_MemberA_tags_2,	/* Same as above */
+	sizeof(asn_DEF_MemberA_tags_2)
+		/sizeof(asn_DEF_MemberA_tags_2[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_MemberA_2,
+	3,	/* Elements count */
+	&asn_SPC_MemberA_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_LA_LIST_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_MemberA_2,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_LA_LIST_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_LA_LIST_specs_1 = {
+	sizeof(struct RANAP_LA_LIST),
+	offsetof(struct RANAP_LA_LIST, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LA_LIST = {
+	"RANAP_LA-LIST",
+	"RANAP_LA-LIST",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LA_LIST_tags_1,
+	sizeof(asn_DEF_RANAP_LA_LIST_tags_1)
+		/sizeof(asn_DEF_RANAP_LA_LIST_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LA_LIST_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LA_LIST_tags_1)
+		/sizeof(asn_DEF_RANAP_LA_LIST_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_LA_LIST_constr_1,
+	asn_MBR_RANAP_LA_LIST_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_LA_LIST_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LA-LIST.h b/src/ranap/RANAP_LA-LIST.h
new file mode 100644
index 0000000..3242a58
--- /dev/null
+++ b/src/ranap/RANAP_LA-LIST.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_LA_LIST_H_
+#define	_RANAP_LA_LIST_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "RANAP_LAC.h"
+#include "RANAP_ListOF-SNAs.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LA-LIST */
+typedef struct RANAP_LA_LIST {
+	A_SEQUENCE_OF(struct MemberA {
+		RANAP_LAC_t	 lAC;
+		RANAP_ListOF_SNAs_t	 listOF_SNAs;
+		RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_LA_LIST_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LA_LIST;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LA_LIST_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LABased.c b/src/ranap/RANAP_LABased.c
new file mode 100644
index 0000000..052bf3c
--- /dev/null
+++ b/src/ranap/RANAP_LABased.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_LABased.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_LABased_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_LABased, laiList),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_LAI_List,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"laiList"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_LABased, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_LABased_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_LABased_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_LABased_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* laiList */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_LABased_specs_1 = {
+	sizeof(struct RANAP_LABased),
+	offsetof(struct RANAP_LABased, _asn_ctx),
+	asn_MAP_RANAP_LABased_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_LABased_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LABased = {
+	"RANAP_LABased",
+	"RANAP_LABased",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LABased_tags_1,
+	sizeof(asn_DEF_RANAP_LABased_tags_1)
+		/sizeof(asn_DEF_RANAP_LABased_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LABased_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LABased_tags_1)
+		/sizeof(asn_DEF_RANAP_LABased_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_LABased_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_LABased_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LABased.h b/src/ranap/RANAP_LABased.h
new file mode 100644
index 0000000..161594a
--- /dev/null
+++ b/src/ranap/RANAP_LABased.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_LABased_H_
+#define	_RANAP_LABased_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_LAI-List.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LABased */
+typedef struct RANAP_LABased {
+	RANAP_LAI_List_t	 laiList;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_LABased_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LABased;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LABased_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LAC.c b/src/ranap/RANAP_LAC.c
new file mode 100644
index 0000000..c9d99f1
--- /dev/null
+++ b/src/ranap/RANAP_LAC.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_LAC.h"
+
+int
+RANAP_LAC_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 2l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_LAC_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_LAC_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_LAC_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_LAC_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LAC_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LAC_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_LAC_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_LAC_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LAC_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LAC_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_LAC_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_LAC_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LAC_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LAC_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_LAC_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_LAC_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_LAC_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_LAC_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_LAC_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_LAC_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_LAC_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_LAC_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  2l,  2l }	/* (SIZE(2..2)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_LAC_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LAC = {
+	"RANAP_LAC",
+	"RANAP_LAC",
+	RANAP_LAC_free,
+	RANAP_LAC_print,
+	RANAP_LAC_constraint,
+	RANAP_LAC_decode_ber,
+	RANAP_LAC_encode_der,
+	RANAP_LAC_decode_xer,
+	RANAP_LAC_encode_xer,
+	RANAP_LAC_decode_uper,
+	RANAP_LAC_encode_uper,
+	RANAP_LAC_decode_aper,
+	RANAP_LAC_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LAC_tags_1,
+	sizeof(asn_DEF_RANAP_LAC_tags_1)
+		/sizeof(asn_DEF_RANAP_LAC_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LAC_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LAC_tags_1)
+		/sizeof(asn_DEF_RANAP_LAC_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_LAC_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_LAC.h b/src/ranap/RANAP_LAC.h
new file mode 100644
index 0000000..ff12809
--- /dev/null
+++ b/src/ranap/RANAP_LAC.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_LAC_H_
+#define	_RANAP_LAC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LAC */
+typedef OCTET_STRING_t	 RANAP_LAC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LAC;
+asn_struct_free_f RANAP_LAC_free;
+asn_struct_print_f RANAP_LAC_print;
+asn_constr_check_f RANAP_LAC_constraint;
+ber_type_decoder_f RANAP_LAC_decode_ber;
+der_type_encoder_f RANAP_LAC_encode_der;
+xer_type_decoder_f RANAP_LAC_decode_xer;
+xer_type_encoder_f RANAP_LAC_encode_xer;
+per_type_decoder_f RANAP_LAC_decode_uper;
+per_type_encoder_f RANAP_LAC_encode_uper;
+per_type_decoder_f RANAP_LAC_decode_aper;
+per_type_encoder_f RANAP_LAC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LAC_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LAI-List.c b/src/ranap/RANAP_LAI-List.c
new file mode 100644
index 0000000..ce3f543
--- /dev/null
+++ b/src/ranap/RANAP_LAI-List.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_LAI-List.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_LAI_List_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 3,  3,  1l,  8l }	/* (SIZE(1..8)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_LAI_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_LAI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_LAI_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_LAI_List_specs_1 = {
+	sizeof(struct RANAP_LAI_List),
+	offsetof(struct RANAP_LAI_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LAI_List = {
+	"RANAP_LAI-List",
+	"RANAP_LAI-List",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LAI_List_tags_1,
+	sizeof(asn_DEF_RANAP_LAI_List_tags_1)
+		/sizeof(asn_DEF_RANAP_LAI_List_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LAI_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LAI_List_tags_1)
+		/sizeof(asn_DEF_RANAP_LAI_List_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_LAI_List_constr_1,
+	asn_MBR_RANAP_LAI_List_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_LAI_List_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LAI-List.h b/src/ranap/RANAP_LAI-List.h
new file mode 100644
index 0000000..58242ee
--- /dev/null
+++ b/src/ranap/RANAP_LAI-List.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_LAI_List_H_
+#define	_RANAP_LAI_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_LAI.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LAI-List */
+typedef struct RANAP_LAI_List {
+	A_SEQUENCE_OF(RANAP_LAI_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_LAI_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LAI_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LAI_List_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LAI.c b/src/ranap/RANAP_LAI.c
new file mode 100644
index 0000000..d8aa1d7
--- /dev/null
+++ b/src/ranap/RANAP_LAI.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_LAI.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_LAI_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_LAI, pLMNidentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PLMNidentity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pLMNidentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_LAI, lAC),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_LAC,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"lAC"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_LAI, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_LAI_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_LAI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_LAI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lAC */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_LAI_specs_1 = {
+	sizeof(struct RANAP_LAI),
+	offsetof(struct RANAP_LAI, _asn_ctx),
+	asn_MAP_RANAP_LAI_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_LAI_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LAI = {
+	"RANAP_LAI",
+	"RANAP_LAI",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LAI_tags_1,
+	sizeof(asn_DEF_RANAP_LAI_tags_1)
+		/sizeof(asn_DEF_RANAP_LAI_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LAI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LAI_tags_1)
+		/sizeof(asn_DEF_RANAP_LAI_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_LAI_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_LAI_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LAI.h b/src/ranap/RANAP_LAI.h
new file mode 100644
index 0000000..8ef0f98
--- /dev/null
+++ b/src/ranap/RANAP_LAI.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_LAI_H_
+#define	_RANAP_LAI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PLMNidentity.h"
+#include "RANAP_LAC.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LAI */
+typedef struct RANAP_LAI {
+	RANAP_PLMNidentity_t	 pLMNidentity;
+	RANAP_LAC_t	 lAC;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_LAI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LAI;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LAI_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LAListofIdleModeUEs.c b/src/ranap/RANAP_LAListofIdleModeUEs.c
new file mode 100644
index 0000000..dea3aec
--- /dev/null
+++ b/src/ranap/RANAP_LAListofIdleModeUEs.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_LAListofIdleModeUEs.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_LAListofIdleModeUEs_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16, -1,  1l,  65536l }	/* (SIZE(1..65536)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_LAListofIdleModeUEs_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_LAI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_LAListofIdleModeUEs_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_LAListofIdleModeUEs_specs_1 = {
+	sizeof(struct RANAP_LAListofIdleModeUEs),
+	offsetof(struct RANAP_LAListofIdleModeUEs, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LAListofIdleModeUEs = {
+	"RANAP_LAListofIdleModeUEs",
+	"RANAP_LAListofIdleModeUEs",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LAListofIdleModeUEs_tags_1,
+	sizeof(asn_DEF_RANAP_LAListofIdleModeUEs_tags_1)
+		/sizeof(asn_DEF_RANAP_LAListofIdleModeUEs_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LAListofIdleModeUEs_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LAListofIdleModeUEs_tags_1)
+		/sizeof(asn_DEF_RANAP_LAListofIdleModeUEs_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_LAListofIdleModeUEs_constr_1,
+	asn_MBR_RANAP_LAListofIdleModeUEs_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_LAListofIdleModeUEs_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LAListofIdleModeUEs.h b/src/ranap/RANAP_LAListofIdleModeUEs.h
new file mode 100644
index 0000000..6b5ecca
--- /dev/null
+++ b/src/ranap/RANAP_LAListofIdleModeUEs.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_LAListofIdleModeUEs_H_
+#define	_RANAP_LAListofIdleModeUEs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_LAI.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LAListofIdleModeUEs */
+typedef struct RANAP_LAListofIdleModeUEs {
+	A_SEQUENCE_OF(RANAP_LAI_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_LAListofIdleModeUEs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LAListofIdleModeUEs;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LAListofIdleModeUEs_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LHN-ID.c b/src/ranap/RANAP_LHN-ID.c
new file mode 100644
index 0000000..95e2976
--- /dev/null
+++ b/src/ranap/RANAP_LHN-ID.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_LHN-ID.h"
+
+int
+RANAP_LHN_ID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 32l && size <= 256l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_LHN_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_LHN_ID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_LHN_ID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_LHN_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LHN_ID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LHN_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_LHN_ID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_LHN_ID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LHN_ID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LHN_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_LHN_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_LHN_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LHN_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LHN_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_LHN_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_LHN_ID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_LHN_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_LHN_ID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_LHN_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_LHN_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_LHN_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_LHN_ID_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 8,  8,  32l,  256l }	/* (SIZE(32..256)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_LHN_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LHN_ID = {
+	"RANAP_LHN-ID",
+	"RANAP_LHN-ID",
+	RANAP_LHN_ID_free,
+	RANAP_LHN_ID_print,
+	RANAP_LHN_ID_constraint,
+	RANAP_LHN_ID_decode_ber,
+	RANAP_LHN_ID_encode_der,
+	RANAP_LHN_ID_decode_xer,
+	RANAP_LHN_ID_encode_xer,
+	RANAP_LHN_ID_decode_uper,
+	RANAP_LHN_ID_encode_uper,
+	RANAP_LHN_ID_decode_aper,
+	RANAP_LHN_ID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LHN_ID_tags_1,
+	sizeof(asn_DEF_RANAP_LHN_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_LHN_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LHN_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LHN_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_LHN_ID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_LHN_ID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_LHN-ID.h b/src/ranap/RANAP_LHN-ID.h
new file mode 100644
index 0000000..a8776b8
--- /dev/null
+++ b/src/ranap/RANAP_LHN-ID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_LHN_ID_H_
+#define	_RANAP_LHN_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LHN-ID */
+typedef OCTET_STRING_t	 RANAP_LHN_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LHN_ID;
+asn_struct_free_f RANAP_LHN_ID_free;
+asn_struct_print_f RANAP_LHN_ID_print;
+asn_constr_check_f RANAP_LHN_ID_constraint;
+ber_type_decoder_f RANAP_LHN_ID_decode_ber;
+der_type_encoder_f RANAP_LHN_ID_encode_der;
+xer_type_decoder_f RANAP_LHN_ID_decode_xer;
+xer_type_encoder_f RANAP_LHN_ID_encode_xer;
+per_type_decoder_f RANAP_LHN_ID_decode_uper;
+per_type_encoder_f RANAP_LHN_ID_encode_uper;
+per_type_decoder_f RANAP_LHN_ID_decode_aper;
+per_type_encoder_f RANAP_LHN_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LHN_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LastKnownServiceArea.c b/src/ranap/RANAP_LastKnownServiceArea.c
new file mode 100644
index 0000000..1360679
--- /dev/null
+++ b/src/ranap/RANAP_LastKnownServiceArea.c
@@ -0,0 +1,113 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_LastKnownServiceArea.h"
+
+static int
+memb_ageOfSAI_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 32767l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_ageOfSAI_constr_3 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 15,  15,  0l,  32767l }	/* (0..32767) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_LastKnownServiceArea_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_LastKnownServiceArea, sAI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_SAI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"sAI"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_LastKnownServiceArea, ageOfSAI),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_ageOfSAI_constraint_1,
+		&asn_PER_memb_ageOfSAI_constr_3,
+		0,
+		"ageOfSAI"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_LastKnownServiceArea, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_LastKnownServiceArea_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_LastKnownServiceArea_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_LastKnownServiceArea_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sAI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ageOfSAI */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_LastKnownServiceArea_specs_1 = {
+	sizeof(struct RANAP_LastKnownServiceArea),
+	offsetof(struct RANAP_LastKnownServiceArea, _asn_ctx),
+	asn_MAP_RANAP_LastKnownServiceArea_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_LastKnownServiceArea_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LastKnownServiceArea = {
+	"RANAP_LastKnownServiceArea",
+	"RANAP_LastKnownServiceArea",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LastKnownServiceArea_tags_1,
+	sizeof(asn_DEF_RANAP_LastKnownServiceArea_tags_1)
+		/sizeof(asn_DEF_RANAP_LastKnownServiceArea_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LastKnownServiceArea_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LastKnownServiceArea_tags_1)
+		/sizeof(asn_DEF_RANAP_LastKnownServiceArea_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_LastKnownServiceArea_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_LastKnownServiceArea_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LastKnownServiceArea.h b/src/ranap/RANAP_LastKnownServiceArea.h
new file mode 100644
index 0000000..c29334f
--- /dev/null
+++ b/src/ranap/RANAP_LastKnownServiceArea.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_LastKnownServiceArea_H_
+#define	_RANAP_LastKnownServiceArea_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_SAI.h"
+#include <NativeInteger.h>
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LastKnownServiceArea */
+typedef struct RANAP_LastKnownServiceArea {
+	RANAP_SAI_t	 sAI;
+	long	 ageOfSAI;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_LastKnownServiceArea_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LastKnownServiceArea;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LastKnownServiceArea_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LastVisitedUTRANCell-Item.c b/src/ranap/RANAP_LastVisitedUTRANCell-Item.c
new file mode 100644
index 0000000..61e4a1a
--- /dev/null
+++ b/src/ranap/RANAP_LastVisitedUTRANCell-Item.c
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_LastVisitedUTRANCell-Item.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_LastVisitedUTRANCell_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_LastVisitedUTRANCell_Item, uTRAN_CellID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_UTRAN_CellID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"uTRAN-CellID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_LastVisitedUTRANCell_Item, cellType),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CellType,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"cellType"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_LastVisitedUTRANCell_Item, time_UE_StayedInCell),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Time_UE_StayedInCell,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"time-UE-StayedInCell"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_LastVisitedUTRANCell_Item, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_LastVisitedUTRANCell_Item_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_RANAP_LastVisitedUTRANCell_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_LastVisitedUTRANCell_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uTRAN-CellID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellType */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* time-UE-StayedInCell */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_LastVisitedUTRANCell_Item_specs_1 = {
+	sizeof(struct RANAP_LastVisitedUTRANCell_Item),
+	offsetof(struct RANAP_LastVisitedUTRANCell_Item, _asn_ctx),
+	asn_MAP_RANAP_LastVisitedUTRANCell_Item_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_LastVisitedUTRANCell_Item_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	3,	/* Start extensions */
+	5	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LastVisitedUTRANCell_Item = {
+	"RANAP_LastVisitedUTRANCell-Item",
+	"RANAP_LastVisitedUTRANCell-Item",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LastVisitedUTRANCell_Item_tags_1,
+	sizeof(asn_DEF_RANAP_LastVisitedUTRANCell_Item_tags_1)
+		/sizeof(asn_DEF_RANAP_LastVisitedUTRANCell_Item_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LastVisitedUTRANCell_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LastVisitedUTRANCell_Item_tags_1)
+		/sizeof(asn_DEF_RANAP_LastVisitedUTRANCell_Item_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_LastVisitedUTRANCell_Item_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_LastVisitedUTRANCell_Item_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LastVisitedUTRANCell-Item.h b/src/ranap/RANAP_LastVisitedUTRANCell-Item.h
new file mode 100644
index 0000000..de775e1
--- /dev/null
+++ b/src/ranap/RANAP_LastVisitedUTRANCell-Item.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_LastVisitedUTRANCell_Item_H_
+#define	_RANAP_LastVisitedUTRANCell_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_UTRAN-CellID.h"
+#include "RANAP_CellType.h"
+#include "RANAP_Time-UE-StayedInCell.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LastVisitedUTRANCell-Item */
+typedef struct RANAP_LastVisitedUTRANCell_Item {
+	RANAP_UTRAN_CellID_t	 uTRAN_CellID;
+	RANAP_CellType_t	 cellType;
+	RANAP_Time_UE_StayedInCell_t	 time_UE_StayedInCell;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_LastVisitedUTRANCell_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LastVisitedUTRANCell_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LastVisitedUTRANCell_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Links-to-log.c b/src/ranap/RANAP_Links-to-log.c
new file mode 100644
index 0000000..fe6b9ed
--- /dev/null
+++ b/src/ranap/RANAP_Links-to-log.c
@@ -0,0 +1,169 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Links-to-log.h"
+
+int
+RANAP_Links_to_log_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Links_to_log_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_Links_to_log_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Links_to_log_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Links_to_log_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Links_to_log_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Links_to_log_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Links_to_log_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Links_to_log_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Links_to_log_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Links_to_log_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Links_to_log_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Links_to_log_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Links_to_log_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Links_to_log_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Links_to_log_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Links_to_log_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Links_to_log_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Links_to_log_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Links_to_log_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Links_to_log_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Links_to_log_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Links_to_log_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  2l }	/* (0..2,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_Links_to_log_value2enum_1[] = {
+	{ 0,	6,	"uplink" },
+	{ 1,	8,	"downlink" },
+	{ 2,	24,	"both-uplink-and-downlink" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_Links_to_log_enum2value_1[] = {
+	2,	/* both-uplink-and-downlink(2) */
+	1,	/* downlink(1) */
+	0	/* uplink(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_Links_to_log_specs_1 = {
+	asn_MAP_RANAP_Links_to_log_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_Links_to_log_enum2value_1,	/* N => "tag"; sorted by N */
+	3,	/* Number of elements in the maps */
+	4,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Links_to_log_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Links_to_log = {
+	"RANAP_Links-to-log",
+	"RANAP_Links-to-log",
+	RANAP_Links_to_log_free,
+	RANAP_Links_to_log_print,
+	RANAP_Links_to_log_constraint,
+	RANAP_Links_to_log_decode_ber,
+	RANAP_Links_to_log_encode_der,
+	RANAP_Links_to_log_decode_xer,
+	RANAP_Links_to_log_encode_xer,
+	RANAP_Links_to_log_decode_uper,
+	RANAP_Links_to_log_encode_uper,
+	RANAP_Links_to_log_decode_aper,
+	RANAP_Links_to_log_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Links_to_log_tags_1,
+	sizeof(asn_DEF_RANAP_Links_to_log_tags_1)
+		/sizeof(asn_DEF_RANAP_Links_to_log_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Links_to_log_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Links_to_log_tags_1)
+		/sizeof(asn_DEF_RANAP_Links_to_log_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Links_to_log_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_Links_to_log_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Links-to-log.h b/src/ranap/RANAP_Links-to-log.h
new file mode 100644
index 0000000..8b11a7e
--- /dev/null
+++ b/src/ranap/RANAP_Links-to-log.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Links_to_log_H_
+#define	_RANAP_Links_to_log_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_Links_to_log {
+	RANAP_Links_to_log_uplink	= 0,
+	RANAP_Links_to_log_downlink	= 1,
+	RANAP_Links_to_log_both_uplink_and_downlink	= 2
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_Links_to_log;
+
+/* RANAP_Links-to-log */
+typedef long	 RANAP_Links_to_log_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Links_to_log;
+asn_struct_free_f RANAP_Links_to_log_free;
+asn_struct_print_f RANAP_Links_to_log_print;
+asn_constr_check_f RANAP_Links_to_log_constraint;
+ber_type_decoder_f RANAP_Links_to_log_decode_ber;
+der_type_encoder_f RANAP_Links_to_log_encode_der;
+xer_type_decoder_f RANAP_Links_to_log_decode_xer;
+xer_type_encoder_f RANAP_Links_to_log_encode_xer;
+per_type_decoder_f RANAP_Links_to_log_decode_uper;
+per_type_encoder_f RANAP_Links_to_log_encode_uper;
+per_type_decoder_f RANAP_Links_to_log_decode_aper;
+per_type_encoder_f RANAP_Links_to_log_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Links_to_log_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ListOF-SNAs.c b/src/ranap/RANAP_ListOF-SNAs.c
new file mode 100644
index 0000000..1a0d533
--- /dev/null
+++ b/src/ranap/RANAP_ListOF-SNAs.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ListOF-SNAs.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_ListOF_SNAs_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16, -1,  1l,  65536l }	/* (SIZE(1..65536)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_ListOF_SNAs_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_SNAC,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ListOF_SNAs_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_ListOF_SNAs_specs_1 = {
+	sizeof(struct RANAP_ListOF_SNAs),
+	offsetof(struct RANAP_ListOF_SNAs, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ListOF_SNAs = {
+	"RANAP_ListOF-SNAs",
+	"RANAP_ListOF-SNAs",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ListOF_SNAs_tags_1,
+	sizeof(asn_DEF_RANAP_ListOF_SNAs_tags_1)
+		/sizeof(asn_DEF_RANAP_ListOF_SNAs_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ListOF_SNAs_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ListOF_SNAs_tags_1)
+		/sizeof(asn_DEF_RANAP_ListOF_SNAs_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_ListOF_SNAs_constr_1,
+	asn_MBR_RANAP_ListOF_SNAs_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_ListOF_SNAs_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ListOF-SNAs.h b/src/ranap/RANAP_ListOF-SNAs.h
new file mode 100644
index 0000000..9a9c5d8
--- /dev/null
+++ b/src/ranap/RANAP_ListOF-SNAs.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ListOF_SNAs_H_
+#define	_RANAP_ListOF_SNAs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_SNAC.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ListOF-SNAs */
+typedef struct RANAP_ListOF_SNAs {
+	A_SEQUENCE_OF(RANAP_SNAC_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_ListOF_SNAs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ListOF_SNAs;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ListOF_SNAs_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ListOfInterfacesToTrace.c b/src/ranap/RANAP_ListOfInterfacesToTrace.c
new file mode 100644
index 0000000..2c87cd1
--- /dev/null
+++ b/src/ranap/RANAP_ListOfInterfacesToTrace.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ListOfInterfacesToTrace.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_ListOfInterfacesToTrace_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  1l,  16l }	/* (SIZE(1..16)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_ListOfInterfacesToTrace_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_InterfacesToTraceItem,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ListOfInterfacesToTrace_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_ListOfInterfacesToTrace_specs_1 = {
+	sizeof(struct RANAP_ListOfInterfacesToTrace),
+	offsetof(struct RANAP_ListOfInterfacesToTrace, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ListOfInterfacesToTrace = {
+	"RANAP_ListOfInterfacesToTrace",
+	"RANAP_ListOfInterfacesToTrace",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ListOfInterfacesToTrace_tags_1,
+	sizeof(asn_DEF_RANAP_ListOfInterfacesToTrace_tags_1)
+		/sizeof(asn_DEF_RANAP_ListOfInterfacesToTrace_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ListOfInterfacesToTrace_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ListOfInterfacesToTrace_tags_1)
+		/sizeof(asn_DEF_RANAP_ListOfInterfacesToTrace_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_ListOfInterfacesToTrace_constr_1,
+	asn_MBR_RANAP_ListOfInterfacesToTrace_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_ListOfInterfacesToTrace_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ListOfInterfacesToTrace.h b/src/ranap/RANAP_ListOfInterfacesToTrace.h
new file mode 100644
index 0000000..9c522d8
--- /dev/null
+++ b/src/ranap/RANAP_ListOfInterfacesToTrace.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ListOfInterfacesToTrace_H_
+#define	_RANAP_ListOfInterfacesToTrace_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_InterfacesToTraceItem.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ListOfInterfacesToTrace */
+typedef struct RANAP_ListOfInterfacesToTrace {
+	A_SEQUENCE_OF(RANAP_InterfacesToTraceItem_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_ListOfInterfacesToTrace_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ListOfInterfacesToTrace;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ListOfInterfacesToTrace_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LoadValue.c b/src/ranap/RANAP_LoadValue.c
new file mode 100644
index 0000000..fbb9b69
--- /dev/null
+++ b/src/ranap/RANAP_LoadValue.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_LoadValue.h"
+
+int
+RANAP_LoadValue_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 100l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_LoadValue_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_LoadValue_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_LoadValue_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_LoadValue_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LoadValue_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LoadValue_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_LoadValue_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_LoadValue_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LoadValue_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LoadValue_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_LoadValue_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_LoadValue_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LoadValue_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LoadValue_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_LoadValue_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_LoadValue_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_LoadValue_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_LoadValue_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_LoadValue_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_LoadValue_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_LoadValue_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_LoadValue_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  0l,  100l }	/* (0..100) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_LoadValue_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LoadValue = {
+	"RANAP_LoadValue",
+	"RANAP_LoadValue",
+	RANAP_LoadValue_free,
+	RANAP_LoadValue_print,
+	RANAP_LoadValue_constraint,
+	RANAP_LoadValue_decode_ber,
+	RANAP_LoadValue_encode_der,
+	RANAP_LoadValue_decode_xer,
+	RANAP_LoadValue_encode_xer,
+	RANAP_LoadValue_decode_uper,
+	RANAP_LoadValue_encode_uper,
+	RANAP_LoadValue_decode_aper,
+	RANAP_LoadValue_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LoadValue_tags_1,
+	sizeof(asn_DEF_RANAP_LoadValue_tags_1)
+		/sizeof(asn_DEF_RANAP_LoadValue_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LoadValue_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LoadValue_tags_1)
+		/sizeof(asn_DEF_RANAP_LoadValue_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_LoadValue_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_LoadValue.h b/src/ranap/RANAP_LoadValue.h
new file mode 100644
index 0000000..8cb072d
--- /dev/null
+++ b/src/ranap/RANAP_LoadValue.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_LoadValue_H_
+#define	_RANAP_LoadValue_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LoadValue */
+typedef long	 RANAP_LoadValue_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LoadValue;
+asn_struct_free_f RANAP_LoadValue_free;
+asn_struct_print_f RANAP_LoadValue_print;
+asn_constr_check_f RANAP_LoadValue_constraint;
+ber_type_decoder_f RANAP_LoadValue_decode_ber;
+der_type_encoder_f RANAP_LoadValue_encode_der;
+xer_type_decoder_f RANAP_LoadValue_decode_xer;
+xer_type_encoder_f RANAP_LoadValue_encode_xer;
+per_type_decoder_f RANAP_LoadValue_decode_uper;
+per_type_encoder_f RANAP_LoadValue_encode_uper;
+per_type_decoder_f RANAP_LoadValue_decode_aper;
+per_type_encoder_f RANAP_LoadValue_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LoadValue_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LocationRelatedDataFailure.c b/src/ranap/RANAP_LocationRelatedDataFailure.c
new file mode 100644
index 0000000..9835619
--- /dev/null
+++ b/src/ranap/RANAP_LocationRelatedDataFailure.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_LocationRelatedDataFailure.h"
+
+static int
+memb_locationRelatedDataFailure_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_locationRelatedDataFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_locationRelatedDataFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_locationRelatedDataFailure_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_locationRelatedDataFailure_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_locationRelatedDataFailure_ies_specs_2 = {
+	sizeof(struct locationRelatedDataFailure_ies),
+	offsetof(struct locationRelatedDataFailure_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_locationRelatedDataFailure_ies_2 = {
+	"locationRelatedDataFailure-ies",
+	"locationRelatedDataFailure-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_locationRelatedDataFailure_ies_tags_2,
+	sizeof(asn_DEF_locationRelatedDataFailure_ies_tags_2)
+		/sizeof(asn_DEF_locationRelatedDataFailure_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_locationRelatedDataFailure_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_locationRelatedDataFailure_ies_tags_2)
+		/sizeof(asn_DEF_locationRelatedDataFailure_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_locationRelatedDataFailure_ies_constr_2,
+	asn_MBR_locationRelatedDataFailure_ies_2,
+	1,	/* Single element */
+	&asn_SPC_locationRelatedDataFailure_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_LocationRelatedDataFailure_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_LocationRelatedDataFailure, locationRelatedDataFailure_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_locationRelatedDataFailure_ies_2,
+		memb_locationRelatedDataFailure_ies_constraint_1,
+		&asn_PER_memb_locationRelatedDataFailure_ies_constr_2,
+		0,
+		"locationRelatedDataFailure-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_LocationRelatedDataFailure_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_LocationRelatedDataFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* locationRelatedDataFailure-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_LocationRelatedDataFailure_specs_1 = {
+	sizeof(struct RANAP_LocationRelatedDataFailure),
+	offsetof(struct RANAP_LocationRelatedDataFailure, _asn_ctx),
+	asn_MAP_RANAP_LocationRelatedDataFailure_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LocationRelatedDataFailure = {
+	"RANAP_LocationRelatedDataFailure",
+	"RANAP_LocationRelatedDataFailure",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LocationRelatedDataFailure_tags_1,
+	sizeof(asn_DEF_RANAP_LocationRelatedDataFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_LocationRelatedDataFailure_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LocationRelatedDataFailure_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LocationRelatedDataFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_LocationRelatedDataFailure_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_LocationRelatedDataFailure_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_LocationRelatedDataFailure_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LocationRelatedDataFailure.h b/src/ranap/RANAP_LocationRelatedDataFailure.h
new file mode 100644
index 0000000..31fedf9
--- /dev/null
+++ b/src/ranap/RANAP_LocationRelatedDataFailure.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_LocationRelatedDataFailure_H_
+#define	_RANAP_LocationRelatedDataFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LocationRelatedDataFailure */
+typedef struct RANAP_LocationRelatedDataFailure {
+	struct locationRelatedDataFailure_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} locationRelatedDataFailure_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_LocationRelatedDataFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LocationRelatedDataFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LocationRelatedDataFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LocationRelatedDataRequest.c b/src/ranap/RANAP_LocationRelatedDataRequest.c
new file mode 100644
index 0000000..0f22cce
--- /dev/null
+++ b/src/ranap/RANAP_LocationRelatedDataRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_LocationRelatedDataRequest.h"
+
+static int
+memb_locationRelatedDataRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_locationRelatedDataRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_locationRelatedDataRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_locationRelatedDataRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_locationRelatedDataRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_locationRelatedDataRequest_ies_specs_2 = {
+	sizeof(struct locationRelatedDataRequest_ies),
+	offsetof(struct locationRelatedDataRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_locationRelatedDataRequest_ies_2 = {
+	"locationRelatedDataRequest-ies",
+	"locationRelatedDataRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_locationRelatedDataRequest_ies_tags_2,
+	sizeof(asn_DEF_locationRelatedDataRequest_ies_tags_2)
+		/sizeof(asn_DEF_locationRelatedDataRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_locationRelatedDataRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_locationRelatedDataRequest_ies_tags_2)
+		/sizeof(asn_DEF_locationRelatedDataRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_locationRelatedDataRequest_ies_constr_2,
+	asn_MBR_locationRelatedDataRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_locationRelatedDataRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_LocationRelatedDataRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_LocationRelatedDataRequest, locationRelatedDataRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_locationRelatedDataRequest_ies_2,
+		memb_locationRelatedDataRequest_ies_constraint_1,
+		&asn_PER_memb_locationRelatedDataRequest_ies_constr_2,
+		0,
+		"locationRelatedDataRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_LocationRelatedDataRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_LocationRelatedDataRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* locationRelatedDataRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_LocationRelatedDataRequest_specs_1 = {
+	sizeof(struct RANAP_LocationRelatedDataRequest),
+	offsetof(struct RANAP_LocationRelatedDataRequest, _asn_ctx),
+	asn_MAP_RANAP_LocationRelatedDataRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LocationRelatedDataRequest = {
+	"RANAP_LocationRelatedDataRequest",
+	"RANAP_LocationRelatedDataRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LocationRelatedDataRequest_tags_1,
+	sizeof(asn_DEF_RANAP_LocationRelatedDataRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_LocationRelatedDataRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LocationRelatedDataRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LocationRelatedDataRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_LocationRelatedDataRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_LocationRelatedDataRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_LocationRelatedDataRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LocationRelatedDataRequest.h b/src/ranap/RANAP_LocationRelatedDataRequest.h
new file mode 100644
index 0000000..ec525e5
--- /dev/null
+++ b/src/ranap/RANAP_LocationRelatedDataRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_LocationRelatedDataRequest_H_
+#define	_RANAP_LocationRelatedDataRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LocationRelatedDataRequest */
+typedef struct RANAP_LocationRelatedDataRequest {
+	struct locationRelatedDataRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} locationRelatedDataRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_LocationRelatedDataRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LocationRelatedDataRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LocationRelatedDataRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LocationRelatedDataRequestType.c b/src/ranap/RANAP_LocationRelatedDataRequestType.c
new file mode 100644
index 0000000..680e760
--- /dev/null
+++ b/src/ranap/RANAP_LocationRelatedDataRequestType.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_LocationRelatedDataRequestType.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_LocationRelatedDataRequestType_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_LocationRelatedDataRequestType, requestedLocationRelatedDataType),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RequestedLocationRelatedDataType,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"requestedLocationRelatedDataType"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_LocationRelatedDataRequestType, requestedGPSAssistanceData),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RequestedGPSAssistanceData,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"requestedGPSAssistanceData"
+		},
+};
+static const int asn_MAP_RANAP_LocationRelatedDataRequestType_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_LocationRelatedDataRequestType_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_LocationRelatedDataRequestType_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requestedLocationRelatedDataType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* requestedGPSAssistanceData */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_LocationRelatedDataRequestType_specs_1 = {
+	sizeof(struct RANAP_LocationRelatedDataRequestType),
+	offsetof(struct RANAP_LocationRelatedDataRequestType, _asn_ctx),
+	asn_MAP_RANAP_LocationRelatedDataRequestType_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_LocationRelatedDataRequestType_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LocationRelatedDataRequestType = {
+	"RANAP_LocationRelatedDataRequestType",
+	"RANAP_LocationRelatedDataRequestType",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LocationRelatedDataRequestType_tags_1,
+	sizeof(asn_DEF_RANAP_LocationRelatedDataRequestType_tags_1)
+		/sizeof(asn_DEF_RANAP_LocationRelatedDataRequestType_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LocationRelatedDataRequestType_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LocationRelatedDataRequestType_tags_1)
+		/sizeof(asn_DEF_RANAP_LocationRelatedDataRequestType_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_LocationRelatedDataRequestType_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_LocationRelatedDataRequestType_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LocationRelatedDataRequestType.h b/src/ranap/RANAP_LocationRelatedDataRequestType.h
new file mode 100644
index 0000000..98fe123
--- /dev/null
+++ b/src/ranap/RANAP_LocationRelatedDataRequestType.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_LocationRelatedDataRequestType_H_
+#define	_RANAP_LocationRelatedDataRequestType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_RequestedLocationRelatedDataType.h"
+#include "RANAP_RequestedGPSAssistanceData.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LocationRelatedDataRequestType */
+typedef struct RANAP_LocationRelatedDataRequestType {
+	RANAP_RequestedLocationRelatedDataType_t	 requestedLocationRelatedDataType;
+	RANAP_RequestedGPSAssistanceData_t	*requestedGPSAssistanceData	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_LocationRelatedDataRequestType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LocationRelatedDataRequestType;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LocationRelatedDataRequestType_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode.c b/src/ranap/RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode.c
new file mode 100644
index 0000000..7fae43a
--- /dev/null
+++ b/src/ranap/RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode.c
@@ -0,0 +1,169 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode.h"
+
+int
+RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  2l }	/* (0..2,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_value2enum_1[] = {
+	{ 0,	19,	"decipheringKeysEOTD" },
+	{ 1,	41,	"dedicatedMobileAssistedEOTDAssistanceData" },
+	{ 2,	38,	"dedicatedMobileBasedEOTDAssistanceData" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_enum2value_1[] = {
+	0,	/* decipheringKeysEOTD(0) */
+	1,	/* dedicatedMobileAssistedEOTDAssistanceData(1) */
+	2	/* dedicatedMobileBasedEOTDAssistanceData(2) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_specs_1 = {
+	asn_MAP_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_enum2value_1,	/* N => "tag"; sorted by N */
+	3,	/* Number of elements in the maps */
+	4,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode = {
+	"RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode",
+	"RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode",
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_free,
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_print,
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_constraint,
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_decode_ber,
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_encode_der,
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_decode_xer,
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_encode_xer,
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_decode_uper,
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_encode_uper,
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_decode_aper,
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_tags_1,
+	sizeof(asn_DEF_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_tags_1)
+		/sizeof(asn_DEF_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_tags_1)
+		/sizeof(asn_DEF_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode.h b/src/ranap/RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode.h
new file mode 100644
index 0000000..bf80588
--- /dev/null
+++ b/src/ranap/RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_H_
+#define	_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode {
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_decipheringKeysEOTD	= 0,
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_dedicatedMobileAssistedEOTDAssistanceData	= 1,
+	RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_dedicatedMobileBasedEOTDAssistanceData	= 2
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode;
+
+/* RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode */
+typedef long	 RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode;
+asn_struct_free_f RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_free;
+asn_struct_print_f RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_print;
+asn_constr_check_f RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_constraint;
+ber_type_decoder_f RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_decode_ber;
+der_type_encoder_f RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_encode_der;
+xer_type_decoder_f RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_decode_xer;
+xer_type_encoder_f RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_encode_xer;
+per_type_decoder_f RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_decode_uper;
+per_type_encoder_f RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_encode_uper;
+per_type_decoder_f RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_decode_aper;
+per_type_encoder_f RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LocationRelatedDataResponse.c b/src/ranap/RANAP_LocationRelatedDataResponse.c
new file mode 100644
index 0000000..99e9384
--- /dev/null
+++ b/src/ranap/RANAP_LocationRelatedDataResponse.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_LocationRelatedDataResponse.h"
+
+static int
+memb_locationRelatedDataResponse_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_locationRelatedDataResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_locationRelatedDataResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_locationRelatedDataResponse_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_locationRelatedDataResponse_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_locationRelatedDataResponse_ies_specs_2 = {
+	sizeof(struct locationRelatedDataResponse_ies),
+	offsetof(struct locationRelatedDataResponse_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_locationRelatedDataResponse_ies_2 = {
+	"locationRelatedDataResponse-ies",
+	"locationRelatedDataResponse-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_locationRelatedDataResponse_ies_tags_2,
+	sizeof(asn_DEF_locationRelatedDataResponse_ies_tags_2)
+		/sizeof(asn_DEF_locationRelatedDataResponse_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_locationRelatedDataResponse_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_locationRelatedDataResponse_ies_tags_2)
+		/sizeof(asn_DEF_locationRelatedDataResponse_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_locationRelatedDataResponse_ies_constr_2,
+	asn_MBR_locationRelatedDataResponse_ies_2,
+	1,	/* Single element */
+	&asn_SPC_locationRelatedDataResponse_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_LocationRelatedDataResponse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_LocationRelatedDataResponse, locationRelatedDataResponse_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_locationRelatedDataResponse_ies_2,
+		memb_locationRelatedDataResponse_ies_constraint_1,
+		&asn_PER_memb_locationRelatedDataResponse_ies_constr_2,
+		0,
+		"locationRelatedDataResponse-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_LocationRelatedDataResponse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_LocationRelatedDataResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* locationRelatedDataResponse-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_LocationRelatedDataResponse_specs_1 = {
+	sizeof(struct RANAP_LocationRelatedDataResponse),
+	offsetof(struct RANAP_LocationRelatedDataResponse, _asn_ctx),
+	asn_MAP_RANAP_LocationRelatedDataResponse_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LocationRelatedDataResponse = {
+	"RANAP_LocationRelatedDataResponse",
+	"RANAP_LocationRelatedDataResponse",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LocationRelatedDataResponse_tags_1,
+	sizeof(asn_DEF_RANAP_LocationRelatedDataResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_LocationRelatedDataResponse_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LocationRelatedDataResponse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LocationRelatedDataResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_LocationRelatedDataResponse_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_LocationRelatedDataResponse_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_LocationRelatedDataResponse_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LocationRelatedDataResponse.h b/src/ranap/RANAP_LocationRelatedDataResponse.h
new file mode 100644
index 0000000..f4c57a1
--- /dev/null
+++ b/src/ranap/RANAP_LocationRelatedDataResponse.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_LocationRelatedDataResponse_H_
+#define	_RANAP_LocationRelatedDataResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LocationRelatedDataResponse */
+typedef struct RANAP_LocationRelatedDataResponse {
+	struct locationRelatedDataResponse_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} locationRelatedDataResponse_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_LocationRelatedDataResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LocationRelatedDataResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LocationRelatedDataResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LocationReport.c b/src/ranap/RANAP_LocationReport.c
new file mode 100644
index 0000000..f38b717
--- /dev/null
+++ b/src/ranap/RANAP_LocationReport.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_LocationReport.h"
+
+static int
+memb_locationReport_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_locationReport_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_locationReport_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_locationReport_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_locationReport_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_locationReport_ies_specs_2 = {
+	sizeof(struct locationReport_ies),
+	offsetof(struct locationReport_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_locationReport_ies_2 = {
+	"locationReport-ies",
+	"locationReport-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_locationReport_ies_tags_2,
+	sizeof(asn_DEF_locationReport_ies_tags_2)
+		/sizeof(asn_DEF_locationReport_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_locationReport_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_locationReport_ies_tags_2)
+		/sizeof(asn_DEF_locationReport_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_locationReport_ies_constr_2,
+	asn_MBR_locationReport_ies_2,
+	1,	/* Single element */
+	&asn_SPC_locationReport_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_LocationReport_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_LocationReport, locationReport_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_locationReport_ies_2,
+		memb_locationReport_ies_constraint_1,
+		&asn_PER_memb_locationReport_ies_constr_2,
+		0,
+		"locationReport-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_LocationReport_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_LocationReport_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* locationReport-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_LocationReport_specs_1 = {
+	sizeof(struct RANAP_LocationReport),
+	offsetof(struct RANAP_LocationReport, _asn_ctx),
+	asn_MAP_RANAP_LocationReport_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LocationReport = {
+	"RANAP_LocationReport",
+	"RANAP_LocationReport",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LocationReport_tags_1,
+	sizeof(asn_DEF_RANAP_LocationReport_tags_1)
+		/sizeof(asn_DEF_RANAP_LocationReport_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LocationReport_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LocationReport_tags_1)
+		/sizeof(asn_DEF_RANAP_LocationReport_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_LocationReport_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_LocationReport_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LocationReport.h b/src/ranap/RANAP_LocationReport.h
new file mode 100644
index 0000000..1939351
--- /dev/null
+++ b/src/ranap/RANAP_LocationReport.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_LocationReport_H_
+#define	_RANAP_LocationReport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LocationReport */
+typedef struct RANAP_LocationReport {
+	struct locationReport_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} locationReport_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_LocationReport_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LocationReport;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LocationReport_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LocationReportingControl.c b/src/ranap/RANAP_LocationReportingControl.c
new file mode 100644
index 0000000..7a65a53
--- /dev/null
+++ b/src/ranap/RANAP_LocationReportingControl.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_LocationReportingControl.h"
+
+static int
+memb_locationReportingControl_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_locationReportingControl_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_locationReportingControl_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_locationReportingControl_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_locationReportingControl_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_locationReportingControl_ies_specs_2 = {
+	sizeof(struct locationReportingControl_ies),
+	offsetof(struct locationReportingControl_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_locationReportingControl_ies_2 = {
+	"locationReportingControl-ies",
+	"locationReportingControl-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_locationReportingControl_ies_tags_2,
+	sizeof(asn_DEF_locationReportingControl_ies_tags_2)
+		/sizeof(asn_DEF_locationReportingControl_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_locationReportingControl_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_locationReportingControl_ies_tags_2)
+		/sizeof(asn_DEF_locationReportingControl_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_locationReportingControl_ies_constr_2,
+	asn_MBR_locationReportingControl_ies_2,
+	1,	/* Single element */
+	&asn_SPC_locationReportingControl_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_LocationReportingControl_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_LocationReportingControl, locationReportingControl_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_locationReportingControl_ies_2,
+		memb_locationReportingControl_ies_constraint_1,
+		&asn_PER_memb_locationReportingControl_ies_constr_2,
+		0,
+		"locationReportingControl-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_LocationReportingControl_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_LocationReportingControl_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* locationReportingControl-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_LocationReportingControl_specs_1 = {
+	sizeof(struct RANAP_LocationReportingControl),
+	offsetof(struct RANAP_LocationReportingControl, _asn_ctx),
+	asn_MAP_RANAP_LocationReportingControl_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LocationReportingControl = {
+	"RANAP_LocationReportingControl",
+	"RANAP_LocationReportingControl",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LocationReportingControl_tags_1,
+	sizeof(asn_DEF_RANAP_LocationReportingControl_tags_1)
+		/sizeof(asn_DEF_RANAP_LocationReportingControl_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LocationReportingControl_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LocationReportingControl_tags_1)
+		/sizeof(asn_DEF_RANAP_LocationReportingControl_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_LocationReportingControl_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_LocationReportingControl_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LocationReportingControl.h b/src/ranap/RANAP_LocationReportingControl.h
new file mode 100644
index 0000000..83e61d7
--- /dev/null
+++ b/src/ranap/RANAP_LocationReportingControl.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_LocationReportingControl_H_
+#define	_RANAP_LocationReportingControl_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LocationReportingControl */
+typedef struct RANAP_LocationReportingControl {
+	struct locationReportingControl_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} locationReportingControl_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_LocationReportingControl_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LocationReportingControl;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LocationReportingControl_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LocationReportingTransferInformation.c b/src/ranap/RANAP_LocationReportingTransferInformation.c
new file mode 100644
index 0000000..3521569
--- /dev/null
+++ b/src/ranap/RANAP_LocationReportingTransferInformation.c
@@ -0,0 +1,173 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_LocationReportingTransferInformation.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_LocationReportingTransferInformation_1[] = {
+	{ ATF_POINTER, 12, offsetof(struct RANAP_LocationReportingTransferInformation, reportChangeOfSAI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ReportChangeOfSAI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"reportChangeOfSAI"
+		},
+	{ ATF_POINTER, 11, offsetof(struct RANAP_LocationReportingTransferInformation, periodicReportingIndicator),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PeriodicReportingIndicator,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"periodicReportingIndicator"
+		},
+	{ ATF_POINTER, 10, offsetof(struct RANAP_LocationReportingTransferInformation, directReportingIndicator),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_DirectReportingIndicator,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"directReportingIndicator"
+		},
+	{ ATF_POINTER, 9, offsetof(struct RANAP_LocationReportingTransferInformation, verticalAccuracyCode),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_VerticalAccuracyCode,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"verticalAccuracyCode"
+		},
+	{ ATF_POINTER, 8, offsetof(struct RANAP_LocationReportingTransferInformation, positioningPriorityChangeSAI),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PositioningPriority,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"positioningPriorityChangeSAI"
+		},
+	{ ATF_POINTER, 7, offsetof(struct RANAP_LocationReportingTransferInformation, positioningPriorityDirect),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PositioningPriority,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"positioningPriorityDirect"
+		},
+	{ ATF_POINTER, 6, offsetof(struct RANAP_LocationReportingTransferInformation, clientTypePeriodic),
+		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ClientType,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"clientTypePeriodic"
+		},
+	{ ATF_POINTER, 5, offsetof(struct RANAP_LocationReportingTransferInformation, clientTypeDirect),
+		(ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ClientType,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"clientTypeDirect"
+		},
+	{ ATF_POINTER, 4, offsetof(struct RANAP_LocationReportingTransferInformation, responseTime),
+		(ASN_TAG_CLASS_CONTEXT | (8 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ResponseTime,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"responseTime"
+		},
+	{ ATF_POINTER, 3, offsetof(struct RANAP_LocationReportingTransferInformation, includeVelocity),
+		(ASN_TAG_CLASS_CONTEXT | (9 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IncludeVelocity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"includeVelocity"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_LocationReportingTransferInformation, periodicLocationInfo),
+		(ASN_TAG_CLASS_CONTEXT | (10 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PeriodicLocationInfo,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"periodicLocationInfo"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_LocationReportingTransferInformation, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (11 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_LocationReportingTransferInformation_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
+static const ber_tlv_tag_t asn_DEF_RANAP_LocationReportingTransferInformation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_LocationReportingTransferInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportChangeOfSAI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* periodicReportingIndicator */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* directReportingIndicator */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* verticalAccuracyCode */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* positioningPriorityChangeSAI */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* positioningPriorityDirect */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* clientTypePeriodic */
+    { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* clientTypeDirect */
+    { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* responseTime */
+    { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* includeVelocity */
+    { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* periodicLocationInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_LocationReportingTransferInformation_specs_1 = {
+	sizeof(struct RANAP_LocationReportingTransferInformation),
+	offsetof(struct RANAP_LocationReportingTransferInformation, _asn_ctx),
+	asn_MAP_RANAP_LocationReportingTransferInformation_tag2el_1,
+	12,	/* Count of tags in the map */
+	asn_MAP_RANAP_LocationReportingTransferInformation_oms_1,	/* Optional members */
+	12, 0,	/* Root/Additions */
+	11,	/* Start extensions */
+	13	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LocationReportingTransferInformation = {
+	"RANAP_LocationReportingTransferInformation",
+	"RANAP_LocationReportingTransferInformation",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LocationReportingTransferInformation_tags_1,
+	sizeof(asn_DEF_RANAP_LocationReportingTransferInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_LocationReportingTransferInformation_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LocationReportingTransferInformation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LocationReportingTransferInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_LocationReportingTransferInformation_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_LocationReportingTransferInformation_1,
+	12,	/* Elements count */
+	&asn_SPC_RANAP_LocationReportingTransferInformation_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LocationReportingTransferInformation.h b/src/ranap/RANAP_LocationReportingTransferInformation.h
new file mode 100644
index 0000000..a80e5b2
--- /dev/null
+++ b/src/ranap/RANAP_LocationReportingTransferInformation.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_LocationReportingTransferInformation_H_
+#define	_RANAP_LocationReportingTransferInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ReportChangeOfSAI.h"
+#include "RANAP_PeriodicReportingIndicator.h"
+#include "RANAP_DirectReportingIndicator.h"
+#include "RANAP_VerticalAccuracyCode.h"
+#include "RANAP_PositioningPriority.h"
+#include "RANAP_ClientType.h"
+#include "RANAP_ResponseTime.h"
+#include "RANAP_IncludeVelocity.h"
+#include "RANAP_PeriodicLocationInfo.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LocationReportingTransferInformation */
+typedef struct RANAP_LocationReportingTransferInformation {
+	RANAP_ReportChangeOfSAI_t	*reportChangeOfSAI	/* OPTIONAL */;
+	RANAP_PeriodicReportingIndicator_t	*periodicReportingIndicator	/* OPTIONAL */;
+	RANAP_DirectReportingIndicator_t	*directReportingIndicator	/* OPTIONAL */;
+	RANAP_VerticalAccuracyCode_t	*verticalAccuracyCode	/* OPTIONAL */;
+	RANAP_PositioningPriority_t	*positioningPriorityChangeSAI	/* OPTIONAL */;
+	RANAP_PositioningPriority_t	*positioningPriorityDirect	/* OPTIONAL */;
+	RANAP_ClientType_t	*clientTypePeriodic	/* OPTIONAL */;
+	RANAP_ClientType_t	*clientTypeDirect	/* OPTIONAL */;
+	RANAP_ResponseTime_t	*responseTime	/* OPTIONAL */;
+	RANAP_IncludeVelocity_t	*includeVelocity	/* OPTIONAL */;
+	RANAP_PeriodicLocationInfo_t	*periodicLocationInfo	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_LocationReportingTransferInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LocationReportingTransferInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LocationReportingTransferInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LoggedMDT.c b/src/ranap/RANAP_LoggedMDT.c
new file mode 100644
index 0000000..9f0ca98
--- /dev/null
+++ b/src/ranap/RANAP_LoggedMDT.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_LoggedMDT.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_LoggedMDT_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_LoggedMDT, loggingInterval),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_LoggingInterval,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"loggingInterval"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_LoggedMDT, loggingDuration),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_LoggingDuration,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"loggingDuration"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_LoggedMDT, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_LoggedMDT_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_LoggedMDT_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_LoggedMDT_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* loggingInterval */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* loggingDuration */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_LoggedMDT_specs_1 = {
+	sizeof(struct RANAP_LoggedMDT),
+	offsetof(struct RANAP_LoggedMDT, _asn_ctx),
+	asn_MAP_RANAP_LoggedMDT_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_LoggedMDT_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LoggedMDT = {
+	"RANAP_LoggedMDT",
+	"RANAP_LoggedMDT",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LoggedMDT_tags_1,
+	sizeof(asn_DEF_RANAP_LoggedMDT_tags_1)
+		/sizeof(asn_DEF_RANAP_LoggedMDT_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LoggedMDT_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LoggedMDT_tags_1)
+		/sizeof(asn_DEF_RANAP_LoggedMDT_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_LoggedMDT_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_LoggedMDT_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LoggedMDT.h b/src/ranap/RANAP_LoggedMDT.h
new file mode 100644
index 0000000..05c608f
--- /dev/null
+++ b/src/ranap/RANAP_LoggedMDT.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_LoggedMDT_H_
+#define	_RANAP_LoggedMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_LoggingInterval.h"
+#include "RANAP_LoggingDuration.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_LoggedMDT */
+typedef struct RANAP_LoggedMDT {
+	RANAP_LoggingInterval_t	 loggingInterval;
+	RANAP_LoggingDuration_t	 loggingDuration;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_LoggedMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LoggedMDT;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LoggedMDT_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LoggingDuration.c b/src/ranap/RANAP_LoggingDuration.c
new file mode 100644
index 0000000..f801806
--- /dev/null
+++ b/src/ranap/RANAP_LoggingDuration.c
@@ -0,0 +1,175 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_LoggingDuration.h"
+
+int
+RANAP_LoggingDuration_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_LoggingDuration_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_LoggingDuration_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_LoggingDuration_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_LoggingDuration_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LoggingDuration_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LoggingDuration_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_LoggingDuration_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_LoggingDuration_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LoggingDuration_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LoggingDuration_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_LoggingDuration_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_LoggingDuration_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LoggingDuration_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LoggingDuration_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_LoggingDuration_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_LoggingDuration_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_LoggingDuration_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_LoggingDuration_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_LoggingDuration_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_LoggingDuration_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_LoggingDuration_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_LoggingDuration_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0l,  5l }	/* (0..5,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_LoggingDuration_value2enum_1[] = {
+	{ 0,	5,	"min10" },
+	{ 1,	5,	"min20" },
+	{ 2,	5,	"min40" },
+	{ 3,	5,	"min60" },
+	{ 4,	5,	"min90" },
+	{ 5,	6,	"min120" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_LoggingDuration_enum2value_1[] = {
+	0,	/* min10(0) */
+	5,	/* min120(5) */
+	1,	/* min20(1) */
+	2,	/* min40(2) */
+	3,	/* min60(3) */
+	4	/* min90(4) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_LoggingDuration_specs_1 = {
+	asn_MAP_RANAP_LoggingDuration_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_LoggingDuration_enum2value_1,	/* N => "tag"; sorted by N */
+	6,	/* Number of elements in the maps */
+	7,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_LoggingDuration_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LoggingDuration = {
+	"RANAP_LoggingDuration",
+	"RANAP_LoggingDuration",
+	RANAP_LoggingDuration_free,
+	RANAP_LoggingDuration_print,
+	RANAP_LoggingDuration_constraint,
+	RANAP_LoggingDuration_decode_ber,
+	RANAP_LoggingDuration_encode_der,
+	RANAP_LoggingDuration_decode_xer,
+	RANAP_LoggingDuration_encode_xer,
+	RANAP_LoggingDuration_decode_uper,
+	RANAP_LoggingDuration_encode_uper,
+	RANAP_LoggingDuration_decode_aper,
+	RANAP_LoggingDuration_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LoggingDuration_tags_1,
+	sizeof(asn_DEF_RANAP_LoggingDuration_tags_1)
+		/sizeof(asn_DEF_RANAP_LoggingDuration_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LoggingDuration_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LoggingDuration_tags_1)
+		/sizeof(asn_DEF_RANAP_LoggingDuration_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_LoggingDuration_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_LoggingDuration_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LoggingDuration.h b/src/ranap/RANAP_LoggingDuration.h
new file mode 100644
index 0000000..90d4509
--- /dev/null
+++ b/src/ranap/RANAP_LoggingDuration.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_LoggingDuration_H_
+#define	_RANAP_LoggingDuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_LoggingDuration {
+	RANAP_LoggingDuration_min10	= 0,
+	RANAP_LoggingDuration_min20	= 1,
+	RANAP_LoggingDuration_min40	= 2,
+	RANAP_LoggingDuration_min60	= 3,
+	RANAP_LoggingDuration_min90	= 4,
+	RANAP_LoggingDuration_min120	= 5
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_LoggingDuration;
+
+/* RANAP_LoggingDuration */
+typedef long	 RANAP_LoggingDuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LoggingDuration;
+asn_struct_free_f RANAP_LoggingDuration_free;
+asn_struct_print_f RANAP_LoggingDuration_print;
+asn_constr_check_f RANAP_LoggingDuration_constraint;
+ber_type_decoder_f RANAP_LoggingDuration_decode_ber;
+der_type_encoder_f RANAP_LoggingDuration_encode_der;
+xer_type_decoder_f RANAP_LoggingDuration_decode_xer;
+xer_type_encoder_f RANAP_LoggingDuration_encode_xer;
+per_type_decoder_f RANAP_LoggingDuration_decode_uper;
+per_type_encoder_f RANAP_LoggingDuration_encode_uper;
+per_type_decoder_f RANAP_LoggingDuration_decode_aper;
+per_type_encoder_f RANAP_LoggingDuration_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LoggingDuration_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_LoggingInterval.c b/src/ranap/RANAP_LoggingInterval.c
new file mode 100644
index 0000000..6b0ddb8
--- /dev/null
+++ b/src/ranap/RANAP_LoggingInterval.c
@@ -0,0 +1,179 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_LoggingInterval.h"
+
+int
+RANAP_LoggingInterval_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_LoggingInterval_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_LoggingInterval_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_LoggingInterval_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_LoggingInterval_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LoggingInterval_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LoggingInterval_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_LoggingInterval_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_LoggingInterval_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LoggingInterval_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LoggingInterval_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_LoggingInterval_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_LoggingInterval_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_LoggingInterval_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_LoggingInterval_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_LoggingInterval_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_LoggingInterval_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_LoggingInterval_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_LoggingInterval_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_LoggingInterval_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_LoggingInterval_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_LoggingInterval_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_LoggingInterval_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0l,  7l }	/* (0..7,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_LoggingInterval_value2enum_1[] = {
+	{ 0,	5,	"s1d28" },
+	{ 1,	5,	"s2d56" },
+	{ 2,	5,	"s5d12" },
+	{ 3,	6,	"s10d24" },
+	{ 4,	6,	"s20d48" },
+	{ 5,	6,	"s30d72" },
+	{ 6,	6,	"s40d96" },
+	{ 7,	6,	"s61d44" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_LoggingInterval_enum2value_1[] = {
+	3,	/* s10d24(3) */
+	0,	/* s1d28(0) */
+	4,	/* s20d48(4) */
+	1,	/* s2d56(1) */
+	5,	/* s30d72(5) */
+	6,	/* s40d96(6) */
+	2,	/* s5d12(2) */
+	7	/* s61d44(7) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_LoggingInterval_specs_1 = {
+	asn_MAP_RANAP_LoggingInterval_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_LoggingInterval_enum2value_1,	/* N => "tag"; sorted by N */
+	8,	/* Number of elements in the maps */
+	9,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_LoggingInterval_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_LoggingInterval = {
+	"RANAP_LoggingInterval",
+	"RANAP_LoggingInterval",
+	RANAP_LoggingInterval_free,
+	RANAP_LoggingInterval_print,
+	RANAP_LoggingInterval_constraint,
+	RANAP_LoggingInterval_decode_ber,
+	RANAP_LoggingInterval_encode_der,
+	RANAP_LoggingInterval_decode_xer,
+	RANAP_LoggingInterval_encode_xer,
+	RANAP_LoggingInterval_decode_uper,
+	RANAP_LoggingInterval_encode_uper,
+	RANAP_LoggingInterval_decode_aper,
+	RANAP_LoggingInterval_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_LoggingInterval_tags_1,
+	sizeof(asn_DEF_RANAP_LoggingInterval_tags_1)
+		/sizeof(asn_DEF_RANAP_LoggingInterval_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_LoggingInterval_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_LoggingInterval_tags_1)
+		/sizeof(asn_DEF_RANAP_LoggingInterval_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_LoggingInterval_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_LoggingInterval_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_LoggingInterval.h b/src/ranap/RANAP_LoggingInterval.h
new file mode 100644
index 0000000..60ebae5
--- /dev/null
+++ b/src/ranap/RANAP_LoggingInterval.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_LoggingInterval_H_
+#define	_RANAP_LoggingInterval_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_LoggingInterval {
+	RANAP_LoggingInterval_s1d28	= 0,
+	RANAP_LoggingInterval_s2d56	= 1,
+	RANAP_LoggingInterval_s5d12	= 2,
+	RANAP_LoggingInterval_s10d24	= 3,
+	RANAP_LoggingInterval_s20d48	= 4,
+	RANAP_LoggingInterval_s30d72	= 5,
+	RANAP_LoggingInterval_s40d96	= 6,
+	RANAP_LoggingInterval_s61d44	= 7
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_LoggingInterval;
+
+/* RANAP_LoggingInterval */
+typedef long	 RANAP_LoggingInterval_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_LoggingInterval;
+asn_struct_free_f RANAP_LoggingInterval_free;
+asn_struct_print_f RANAP_LoggingInterval_print;
+asn_constr_check_f RANAP_LoggingInterval_constraint;
+ber_type_decoder_f RANAP_LoggingInterval_decode_ber;
+der_type_encoder_f RANAP_LoggingInterval_encode_der;
+xer_type_decoder_f RANAP_LoggingInterval_decode_xer;
+xer_type_encoder_f RANAP_LoggingInterval_encode_xer;
+per_type_decoder_f RANAP_LoggingInterval_decode_uper;
+per_type_encoder_f RANAP_LoggingInterval_encode_uper;
+per_type_decoder_f RANAP_LoggingInterval_decode_aper;
+per_type_encoder_f RANAP_LoggingInterval_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_LoggingInterval_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_M1Report.c b/src/ranap/RANAP_M1Report.c
new file mode 100644
index 0000000..67fa447
--- /dev/null
+++ b/src/ranap/RANAP_M1Report.c
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_M1Report.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_M1Report_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_M1Report_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_M1Report, choice.periodic),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_MDT_Report_Parameters,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"periodic"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_M1Report, choice.event1F),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Event1F_Parameters,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"event1F"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_M1Report_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* periodic */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* event1F */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_M1Report_specs_1 = {
+	sizeof(struct RANAP_M1Report),
+	offsetof(struct RANAP_M1Report, _asn_ctx),
+	offsetof(struct RANAP_M1Report, present),
+	sizeof(((struct RANAP_M1Report *)0)->present),
+	asn_MAP_RANAP_M1Report_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_M1Report = {
+	"RANAP_M1Report",
+	"RANAP_M1Report",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_M1Report_constr_1,
+	asn_MBR_RANAP_M1Report_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_M1Report_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_M1Report.h b/src/ranap/RANAP_M1Report.h
new file mode 100644
index 0000000..e214312
--- /dev/null
+++ b/src/ranap/RANAP_M1Report.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_M1Report_H_
+#define	_RANAP_M1Report_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_MDT-Report-Parameters.h"
+#include "RANAP_Event1F-Parameters.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_M1Report_PR {
+	RANAP_M1Report_PR_NOTHING,	/* No components present */
+	RANAP_M1Report_PR_periodic,
+	RANAP_M1Report_PR_event1F,
+	/* Extensions may appear below */
+	
+} RANAP_M1Report_PR;
+
+/* RANAP_M1Report */
+typedef struct RANAP_M1Report {
+	RANAP_M1Report_PR present;
+	union RANAP_M1Report_u {
+		RANAP_MDT_Report_Parameters_t	 periodic;
+		RANAP_Event1F_Parameters_t	 event1F;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_M1Report_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_M1Report;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_M1Report_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_M2Report.c b/src/ranap/RANAP_M2Report.c
new file mode 100644
index 0000000..768a3c4
--- /dev/null
+++ b/src/ranap/RANAP_M2Report.c
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_M2Report.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_M2Report_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_M2Report_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_M2Report, choice.periodic),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_MDT_Report_Parameters,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"periodic"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_M2Report, choice.event1I),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Event1I_Parameters,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"event1I"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_M2Report_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* periodic */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* event1I */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_M2Report_specs_1 = {
+	sizeof(struct RANAP_M2Report),
+	offsetof(struct RANAP_M2Report, _asn_ctx),
+	offsetof(struct RANAP_M2Report, present),
+	sizeof(((struct RANAP_M2Report *)0)->present),
+	asn_MAP_RANAP_M2Report_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_M2Report = {
+	"RANAP_M2Report",
+	"RANAP_M2Report",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_M2Report_constr_1,
+	asn_MBR_RANAP_M2Report_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_M2Report_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_M2Report.h b/src/ranap/RANAP_M2Report.h
new file mode 100644
index 0000000..505751f
--- /dev/null
+++ b/src/ranap/RANAP_M2Report.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_M2Report_H_
+#define	_RANAP_M2Report_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_MDT-Report-Parameters.h"
+#include "RANAP_Event1I-Parameters.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_M2Report_PR {
+	RANAP_M2Report_PR_NOTHING,	/* No components present */
+	RANAP_M2Report_PR_periodic,
+	RANAP_M2Report_PR_event1I,
+	/* Extensions may appear below */
+	
+} RANAP_M2Report_PR;
+
+/* RANAP_M2Report */
+typedef struct RANAP_M2Report {
+	RANAP_M2Report_PR present;
+	union RANAP_M2Report_u {
+		RANAP_MDT_Report_Parameters_t	 periodic;
+		RANAP_Event1I_Parameters_t	 event1I;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_M2Report_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_M2Report;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_M2Report_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_M4-Collection-Parameters.c b/src/ranap/RANAP_M4-Collection-Parameters.c
new file mode 100644
index 0000000..e964b55
--- /dev/null
+++ b/src/ranap/RANAP_M4-Collection-Parameters.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_M4-Collection-Parameters.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_M4_Collection_Parameters_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_M4_Collection_Parameters, m4_period),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_M4_Period,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"m4-period"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_M4_Collection_Parameters, m4_threshold),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_M4_Threshold,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"m4-threshold"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_M4_Collection_Parameters, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_M4_Collection_Parameters_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_M4_Collection_Parameters_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_M4_Collection_Parameters_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m4-period */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m4-threshold */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_M4_Collection_Parameters_specs_1 = {
+	sizeof(struct RANAP_M4_Collection_Parameters),
+	offsetof(struct RANAP_M4_Collection_Parameters, _asn_ctx),
+	asn_MAP_RANAP_M4_Collection_Parameters_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_M4_Collection_Parameters_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_M4_Collection_Parameters = {
+	"RANAP_M4-Collection-Parameters",
+	"RANAP_M4-Collection-Parameters",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_M4_Collection_Parameters_tags_1,
+	sizeof(asn_DEF_RANAP_M4_Collection_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_M4_Collection_Parameters_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_M4_Collection_Parameters_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_M4_Collection_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_M4_Collection_Parameters_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_M4_Collection_Parameters_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_M4_Collection_Parameters_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_M4-Collection-Parameters.h b/src/ranap/RANAP_M4-Collection-Parameters.h
new file mode 100644
index 0000000..caf8a59
--- /dev/null
+++ b/src/ranap/RANAP_M4-Collection-Parameters.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_M4_Collection_Parameters_H_
+#define	_RANAP_M4_Collection_Parameters_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_M4-Period.h"
+#include "RANAP_M4-Threshold.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_M4-Collection-Parameters */
+typedef struct RANAP_M4_Collection_Parameters {
+	RANAP_M4_Period_t	 m4_period;
+	RANAP_M4_Threshold_t	*m4_threshold	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_M4_Collection_Parameters_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_M4_Collection_Parameters;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_M4_Collection_Parameters_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_M4-Period.c b/src/ranap/RANAP_M4-Period.c
new file mode 100644
index 0000000..f3254bf
--- /dev/null
+++ b/src/ranap/RANAP_M4-Period.c
@@ -0,0 +1,179 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_M4-Period.h"
+
+int
+RANAP_M4_Period_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_M4_Period_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_M4_Period_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_M4_Period_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_M4_Period_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_M4_Period_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_M4_Period_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_M4_Period_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_M4_Period_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_M4_Period_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_M4_Period_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_M4_Period_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_M4_Period_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_M4_Period_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_M4_Period_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_M4_Period_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_M4_Period_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_M4_Period_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_M4_Period_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_M4_Period_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_M4_Period_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_M4_Period_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_M4_Period_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0l,  7l }	/* (0..7,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_M4_Period_value2enum_1[] = {
+	{ 0,	5,	"ms100" },
+	{ 1,	5,	"ms250" },
+	{ 2,	5,	"ms500" },
+	{ 3,	6,	"ms1000" },
+	{ 4,	6,	"ms2000" },
+	{ 5,	6,	"ms3000" },
+	{ 6,	6,	"ms4000" },
+	{ 7,	6,	"ms6000" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_M4_Period_enum2value_1[] = {
+	0,	/* ms100(0) */
+	3,	/* ms1000(3) */
+	4,	/* ms2000(4) */
+	1,	/* ms250(1) */
+	5,	/* ms3000(5) */
+	6,	/* ms4000(6) */
+	2,	/* ms500(2) */
+	7	/* ms6000(7) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_M4_Period_specs_1 = {
+	asn_MAP_RANAP_M4_Period_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_M4_Period_enum2value_1,	/* N => "tag"; sorted by N */
+	8,	/* Number of elements in the maps */
+	9,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_M4_Period_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_M4_Period = {
+	"RANAP_M4-Period",
+	"RANAP_M4-Period",
+	RANAP_M4_Period_free,
+	RANAP_M4_Period_print,
+	RANAP_M4_Period_constraint,
+	RANAP_M4_Period_decode_ber,
+	RANAP_M4_Period_encode_der,
+	RANAP_M4_Period_decode_xer,
+	RANAP_M4_Period_encode_xer,
+	RANAP_M4_Period_decode_uper,
+	RANAP_M4_Period_encode_uper,
+	RANAP_M4_Period_decode_aper,
+	RANAP_M4_Period_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_M4_Period_tags_1,
+	sizeof(asn_DEF_RANAP_M4_Period_tags_1)
+		/sizeof(asn_DEF_RANAP_M4_Period_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_M4_Period_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_M4_Period_tags_1)
+		/sizeof(asn_DEF_RANAP_M4_Period_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_M4_Period_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_M4_Period_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_M4-Period.h b/src/ranap/RANAP_M4-Period.h
new file mode 100644
index 0000000..c6b615d
--- /dev/null
+++ b/src/ranap/RANAP_M4-Period.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_M4_Period_H_
+#define	_RANAP_M4_Period_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_M4_Period {
+	RANAP_M4_Period_ms100	= 0,
+	RANAP_M4_Period_ms250	= 1,
+	RANAP_M4_Period_ms500	= 2,
+	RANAP_M4_Period_ms1000	= 3,
+	RANAP_M4_Period_ms2000	= 4,
+	RANAP_M4_Period_ms3000	= 5,
+	RANAP_M4_Period_ms4000	= 6,
+	RANAP_M4_Period_ms6000	= 7
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_M4_Period;
+
+/* RANAP_M4-Period */
+typedef long	 RANAP_M4_Period_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_M4_Period;
+asn_struct_free_f RANAP_M4_Period_free;
+asn_struct_print_f RANAP_M4_Period_print;
+asn_constr_check_f RANAP_M4_Period_constraint;
+ber_type_decoder_f RANAP_M4_Period_decode_ber;
+der_type_encoder_f RANAP_M4_Period_encode_der;
+xer_type_decoder_f RANAP_M4_Period_decode_xer;
+xer_type_encoder_f RANAP_M4_Period_encode_xer;
+per_type_decoder_f RANAP_M4_Period_decode_uper;
+per_type_encoder_f RANAP_M4_Period_encode_uper;
+per_type_decoder_f RANAP_M4_Period_decode_aper;
+per_type_encoder_f RANAP_M4_Period_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_M4_Period_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_M4-Threshold.c b/src/ranap/RANAP_M4-Threshold.c
new file mode 100644
index 0000000..7ec7d4d
--- /dev/null
+++ b/src/ranap/RANAP_M4-Threshold.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_M4-Threshold.h"
+
+int
+RANAP_M4_Threshold_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 31l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_M4_Threshold_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_M4_Threshold_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_M4_Threshold_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_M4_Threshold_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_M4_Threshold_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_M4_Threshold_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_M4_Threshold_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_M4_Threshold_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_M4_Threshold_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_M4_Threshold_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_M4_Threshold_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_M4_Threshold_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_M4_Threshold_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_M4_Threshold_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_M4_Threshold_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_M4_Threshold_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_M4_Threshold_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_M4_Threshold_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_M4_Threshold_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_M4_Threshold_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_M4_Threshold_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_M4_Threshold_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 5,  5,  0l,  31l }	/* (0..31) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_M4_Threshold_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_M4_Threshold = {
+	"RANAP_M4-Threshold",
+	"RANAP_M4-Threshold",
+	RANAP_M4_Threshold_free,
+	RANAP_M4_Threshold_print,
+	RANAP_M4_Threshold_constraint,
+	RANAP_M4_Threshold_decode_ber,
+	RANAP_M4_Threshold_encode_der,
+	RANAP_M4_Threshold_decode_xer,
+	RANAP_M4_Threshold_encode_xer,
+	RANAP_M4_Threshold_decode_uper,
+	RANAP_M4_Threshold_encode_uper,
+	RANAP_M4_Threshold_decode_aper,
+	RANAP_M4_Threshold_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_M4_Threshold_tags_1,
+	sizeof(asn_DEF_RANAP_M4_Threshold_tags_1)
+		/sizeof(asn_DEF_RANAP_M4_Threshold_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_M4_Threshold_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_M4_Threshold_tags_1)
+		/sizeof(asn_DEF_RANAP_M4_Threshold_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_M4_Threshold_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_M4-Threshold.h b/src/ranap/RANAP_M4-Threshold.h
new file mode 100644
index 0000000..223cf9f
--- /dev/null
+++ b/src/ranap/RANAP_M4-Threshold.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_M4_Threshold_H_
+#define	_RANAP_M4_Threshold_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_M4-Threshold */
+typedef long	 RANAP_M4_Threshold_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_M4_Threshold;
+asn_struct_free_f RANAP_M4_Threshold_free;
+asn_struct_print_f RANAP_M4_Threshold_print;
+asn_constr_check_f RANAP_M4_Threshold_constraint;
+ber_type_decoder_f RANAP_M4_Threshold_decode_ber;
+der_type_encoder_f RANAP_M4_Threshold_encode_der;
+xer_type_decoder_f RANAP_M4_Threshold_decode_xer;
+xer_type_encoder_f RANAP_M4_Threshold_encode_xer;
+per_type_decoder_f RANAP_M4_Threshold_decode_uper;
+per_type_encoder_f RANAP_M4_Threshold_encode_uper;
+per_type_decoder_f RANAP_M4_Threshold_decode_aper;
+per_type_encoder_f RANAP_M4_Threshold_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_M4_Threshold_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_M4Report.c b/src/ranap/RANAP_M4Report.c
new file mode 100644
index 0000000..777c769
--- /dev/null
+++ b/src/ranap/RANAP_M4Report.c
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_M4Report.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_M4Report_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_M4Report_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_M4Report, choice.all),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NULL,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"all"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_M4Report, choice.m4_collection_parameters),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_M4_Collection_Parameters,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"m4-collection-parameters"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_M4Report_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* all */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* m4-collection-parameters */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_M4Report_specs_1 = {
+	sizeof(struct RANAP_M4Report),
+	offsetof(struct RANAP_M4Report, _asn_ctx),
+	offsetof(struct RANAP_M4Report, present),
+	sizeof(((struct RANAP_M4Report *)0)->present),
+	asn_MAP_RANAP_M4Report_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_M4Report = {
+	"RANAP_M4Report",
+	"RANAP_M4Report",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_M4Report_constr_1,
+	asn_MBR_RANAP_M4Report_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_M4Report_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_M4Report.h b/src/ranap/RANAP_M4Report.h
new file mode 100644
index 0000000..c0ccb06
--- /dev/null
+++ b/src/ranap/RANAP_M4Report.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_M4Report_H_
+#define	_RANAP_M4Report_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NULL.h>
+#include "RANAP_M4-Collection-Parameters.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_M4Report_PR {
+	RANAP_M4Report_PR_NOTHING,	/* No components present */
+	RANAP_M4Report_PR_all,
+	RANAP_M4Report_PR_m4_collection_parameters,
+	/* Extensions may appear below */
+	
+} RANAP_M4Report_PR;
+
+/* RANAP_M4Report */
+typedef struct RANAP_M4Report {
+	RANAP_M4Report_PR present;
+	union RANAP_M4Report_u {
+		NULL_t	 all;
+		RANAP_M4_Collection_Parameters_t	 m4_collection_parameters;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_M4Report_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_M4Report;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_M4Report_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_M5-Period.c b/src/ranap/RANAP_M5-Period.c
new file mode 100644
index 0000000..403d645
--- /dev/null
+++ b/src/ranap/RANAP_M5-Period.c
@@ -0,0 +1,179 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_M5-Period.h"
+
+int
+RANAP_M5_Period_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_M5_Period_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_M5_Period_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_M5_Period_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_M5_Period_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_M5_Period_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_M5_Period_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_M5_Period_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_M5_Period_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_M5_Period_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_M5_Period_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_M5_Period_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_M5_Period_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_M5_Period_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_M5_Period_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_M5_Period_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_M5_Period_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_M5_Period_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_M5_Period_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_M5_Period_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_M5_Period_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_M5_Period_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_M5_Period_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0l,  7l }	/* (0..7,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_M5_Period_value2enum_1[] = {
+	{ 0,	5,	"ms100" },
+	{ 1,	5,	"ms250" },
+	{ 2,	5,	"ms500" },
+	{ 3,	6,	"ms1000" },
+	{ 4,	6,	"ms2000" },
+	{ 5,	6,	"ms3000" },
+	{ 6,	6,	"ms4000" },
+	{ 7,	6,	"ms6000" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_M5_Period_enum2value_1[] = {
+	0,	/* ms100(0) */
+	3,	/* ms1000(3) */
+	4,	/* ms2000(4) */
+	1,	/* ms250(1) */
+	5,	/* ms3000(5) */
+	6,	/* ms4000(6) */
+	2,	/* ms500(2) */
+	7	/* ms6000(7) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_M5_Period_specs_1 = {
+	asn_MAP_RANAP_M5_Period_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_M5_Period_enum2value_1,	/* N => "tag"; sorted by N */
+	8,	/* Number of elements in the maps */
+	9,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_M5_Period_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_M5_Period = {
+	"RANAP_M5-Period",
+	"RANAP_M5-Period",
+	RANAP_M5_Period_free,
+	RANAP_M5_Period_print,
+	RANAP_M5_Period_constraint,
+	RANAP_M5_Period_decode_ber,
+	RANAP_M5_Period_encode_der,
+	RANAP_M5_Period_decode_xer,
+	RANAP_M5_Period_encode_xer,
+	RANAP_M5_Period_decode_uper,
+	RANAP_M5_Period_encode_uper,
+	RANAP_M5_Period_decode_aper,
+	RANAP_M5_Period_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_M5_Period_tags_1,
+	sizeof(asn_DEF_RANAP_M5_Period_tags_1)
+		/sizeof(asn_DEF_RANAP_M5_Period_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_M5_Period_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_M5_Period_tags_1)
+		/sizeof(asn_DEF_RANAP_M5_Period_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_M5_Period_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_M5_Period_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_M5-Period.h b/src/ranap/RANAP_M5-Period.h
new file mode 100644
index 0000000..9265658
--- /dev/null
+++ b/src/ranap/RANAP_M5-Period.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_M5_Period_H_
+#define	_RANAP_M5_Period_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_M5_Period {
+	RANAP_M5_Period_ms100	= 0,
+	RANAP_M5_Period_ms250	= 1,
+	RANAP_M5_Period_ms500	= 2,
+	RANAP_M5_Period_ms1000	= 3,
+	RANAP_M5_Period_ms2000	= 4,
+	RANAP_M5_Period_ms3000	= 5,
+	RANAP_M5_Period_ms4000	= 6,
+	RANAP_M5_Period_ms6000	= 7
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_M5_Period;
+
+/* RANAP_M5-Period */
+typedef long	 RANAP_M5_Period_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_M5_Period;
+asn_struct_free_f RANAP_M5_Period_free;
+asn_struct_print_f RANAP_M5_Period_print;
+asn_constr_check_f RANAP_M5_Period_constraint;
+ber_type_decoder_f RANAP_M5_Period_decode_ber;
+der_type_encoder_f RANAP_M5_Period_encode_der;
+xer_type_decoder_f RANAP_M5_Period_decode_xer;
+xer_type_encoder_f RANAP_M5_Period_encode_xer;
+per_type_decoder_f RANAP_M5_Period_decode_uper;
+per_type_encoder_f RANAP_M5_Period_encode_uper;
+per_type_decoder_f RANAP_M5_Period_decode_aper;
+per_type_encoder_f RANAP_M5_Period_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_M5_Period_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_M5Report.c b/src/ranap/RANAP_M5Report.c
new file mode 100644
index 0000000..015aecb
--- /dev/null
+++ b/src/ranap/RANAP_M5Report.c
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_M5Report.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_M5Report_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_M5Report_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_M5Report, choice.when_available),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NULL,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"when-available"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_M5Report, choice.m5_period),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_M5_Period,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"m5-period"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_M5Report_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* when-available */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* m5-period */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_M5Report_specs_1 = {
+	sizeof(struct RANAP_M5Report),
+	offsetof(struct RANAP_M5Report, _asn_ctx),
+	offsetof(struct RANAP_M5Report, present),
+	sizeof(((struct RANAP_M5Report *)0)->present),
+	asn_MAP_RANAP_M5Report_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_M5Report = {
+	"RANAP_M5Report",
+	"RANAP_M5Report",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_M5Report_constr_1,
+	asn_MBR_RANAP_M5Report_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_M5Report_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_M5Report.h b/src/ranap/RANAP_M5Report.h
new file mode 100644
index 0000000..9e3e379
--- /dev/null
+++ b/src/ranap/RANAP_M5Report.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_M5Report_H_
+#define	_RANAP_M5Report_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NULL.h>
+#include "RANAP_M5-Period.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_M5Report_PR {
+	RANAP_M5Report_PR_NOTHING,	/* No components present */
+	RANAP_M5Report_PR_when_available,
+	RANAP_M5Report_PR_m5_period,
+	/* Extensions may appear below */
+	
+} RANAP_M5Report_PR;
+
+/* RANAP_M5Report */
+typedef struct RANAP_M5Report {
+	RANAP_M5Report_PR present;
+	union RANAP_M5Report_u {
+		NULL_t	 when_available;
+		RANAP_M5_Period_t	 m5_period;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_M5Report_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_M5Report;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_M5Report_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_M6-Period.c b/src/ranap/RANAP_M6-Period.c
new file mode 100644
index 0000000..56b49d2
--- /dev/null
+++ b/src/ranap/RANAP_M6-Period.c
@@ -0,0 +1,189 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_M6-Period.h"
+
+int
+RANAP_M6_Period_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_M6_Period_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_M6_Period_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_M6_Period_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_M6_Period_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_M6_Period_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_M6_Period_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_M6_Period_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_M6_Period_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_M6_Period_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_M6_Period_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_M6_Period_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_M6_Period_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_M6_Period_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_M6_Period_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_M6_Period_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_M6_Period_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_M6_Period_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_M6_Period_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_M6_Period_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_M6_Period_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_M6_Period_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_M6_Period_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0l,  12l }	/* (0..12,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_M6_Period_value2enum_1[] = {
+	{ 0,	6,	"ms1000" },
+	{ 1,	6,	"ms2000" },
+	{ 2,	6,	"ms3000" },
+	{ 3,	6,	"ms4000" },
+	{ 4,	6,	"ms6000" },
+	{ 5,	6,	"ms8000" },
+	{ 6,	7,	"ms12000" },
+	{ 7,	7,	"ms16000" },
+	{ 8,	7,	"ms20000" },
+	{ 9,	7,	"ms24000" },
+	{ 10,	7,	"ms28000" },
+	{ 11,	7,	"ms32000" },
+	{ 12,	7,	"ms64000" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_M6_Period_enum2value_1[] = {
+	0,	/* ms1000(0) */
+	6,	/* ms12000(6) */
+	7,	/* ms16000(7) */
+	1,	/* ms2000(1) */
+	8,	/* ms20000(8) */
+	9,	/* ms24000(9) */
+	10,	/* ms28000(10) */
+	2,	/* ms3000(2) */
+	11,	/* ms32000(11) */
+	3,	/* ms4000(3) */
+	4,	/* ms6000(4) */
+	12,	/* ms64000(12) */
+	5	/* ms8000(5) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_M6_Period_specs_1 = {
+	asn_MAP_RANAP_M6_Period_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_M6_Period_enum2value_1,	/* N => "tag"; sorted by N */
+	13,	/* Number of elements in the maps */
+	14,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_M6_Period_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_M6_Period = {
+	"RANAP_M6-Period",
+	"RANAP_M6-Period",
+	RANAP_M6_Period_free,
+	RANAP_M6_Period_print,
+	RANAP_M6_Period_constraint,
+	RANAP_M6_Period_decode_ber,
+	RANAP_M6_Period_encode_der,
+	RANAP_M6_Period_decode_xer,
+	RANAP_M6_Period_encode_xer,
+	RANAP_M6_Period_decode_uper,
+	RANAP_M6_Period_encode_uper,
+	RANAP_M6_Period_decode_aper,
+	RANAP_M6_Period_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_M6_Period_tags_1,
+	sizeof(asn_DEF_RANAP_M6_Period_tags_1)
+		/sizeof(asn_DEF_RANAP_M6_Period_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_M6_Period_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_M6_Period_tags_1)
+		/sizeof(asn_DEF_RANAP_M6_Period_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_M6_Period_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_M6_Period_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_M6-Period.h b/src/ranap/RANAP_M6-Period.h
new file mode 100644
index 0000000..90c8a84
--- /dev/null
+++ b/src/ranap/RANAP_M6-Period.h
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_M6_Period_H_
+#define	_RANAP_M6_Period_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_M6_Period {
+	RANAP_M6_Period_ms1000	= 0,
+	RANAP_M6_Period_ms2000	= 1,
+	RANAP_M6_Period_ms3000	= 2,
+	RANAP_M6_Period_ms4000	= 3,
+	RANAP_M6_Period_ms6000	= 4,
+	RANAP_M6_Period_ms8000	= 5,
+	RANAP_M6_Period_ms12000	= 6,
+	RANAP_M6_Period_ms16000	= 7,
+	RANAP_M6_Period_ms20000	= 8,
+	RANAP_M6_Period_ms24000	= 9,
+	RANAP_M6_Period_ms28000	= 10,
+	RANAP_M6_Period_ms32000	= 11,
+	RANAP_M6_Period_ms64000	= 12
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_M6_Period;
+
+/* RANAP_M6-Period */
+typedef long	 RANAP_M6_Period_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_M6_Period;
+asn_struct_free_f RANAP_M6_Period_free;
+asn_struct_print_f RANAP_M6_Period_print;
+asn_constr_check_f RANAP_M6_Period_constraint;
+ber_type_decoder_f RANAP_M6_Period_decode_ber;
+der_type_encoder_f RANAP_M6_Period_encode_der;
+xer_type_decoder_f RANAP_M6_Period_decode_xer;
+xer_type_encoder_f RANAP_M6_Period_encode_xer;
+per_type_decoder_f RANAP_M6_Period_decode_uper;
+per_type_encoder_f RANAP_M6_Period_encode_uper;
+per_type_decoder_f RANAP_M6_Period_decode_aper;
+per_type_encoder_f RANAP_M6_Period_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_M6_Period_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_M6Report.c b/src/ranap/RANAP_M6Report.c
new file mode 100644
index 0000000..7e8fc65
--- /dev/null
+++ b/src/ranap/RANAP_M6Report.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_M6Report.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_M6Report_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_M6Report, m6_period),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_M6_Period,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"m6-period"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_M6Report, m6_links_to_log),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Links_to_log,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"m6-links-to-log"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_M6Report, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_M6Report_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_M6Report_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_M6Report_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m6-period */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m6-links-to-log */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_M6Report_specs_1 = {
+	sizeof(struct RANAP_M6Report),
+	offsetof(struct RANAP_M6Report, _asn_ctx),
+	asn_MAP_RANAP_M6Report_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_M6Report_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_M6Report = {
+	"RANAP_M6Report",
+	"RANAP_M6Report",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_M6Report_tags_1,
+	sizeof(asn_DEF_RANAP_M6Report_tags_1)
+		/sizeof(asn_DEF_RANAP_M6Report_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_M6Report_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_M6Report_tags_1)
+		/sizeof(asn_DEF_RANAP_M6Report_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_M6Report_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_M6Report_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_M6Report.h b/src/ranap/RANAP_M6Report.h
new file mode 100644
index 0000000..68dc7c5
--- /dev/null
+++ b/src/ranap/RANAP_M6Report.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_M6Report_H_
+#define	_RANAP_M6Report_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_M6-Period.h"
+#include "RANAP_Links-to-log.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_M6Report */
+typedef struct RANAP_M6Report {
+	RANAP_M6_Period_t	 m6_period;
+	RANAP_Links_to_log_t	 m6_links_to_log;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_M6Report_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_M6Report;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_M6Report_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_M7-Period.c b/src/ranap/RANAP_M7-Period.c
new file mode 100644
index 0000000..6955d94
--- /dev/null
+++ b/src/ranap/RANAP_M7-Period.c
@@ -0,0 +1,189 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_M7-Period.h"
+
+int
+RANAP_M7_Period_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_M7_Period_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_M7_Period_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_M7_Period_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_M7_Period_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_M7_Period_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_M7_Period_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_M7_Period_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_M7_Period_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_M7_Period_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_M7_Period_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_M7_Period_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_M7_Period_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_M7_Period_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_M7_Period_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_M7_Period_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_M7_Period_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_M7_Period_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_M7_Period_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_M7_Period_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_M7_Period_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_M7_Period_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_M7_Period_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0l,  12l }	/* (0..12,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_M7_Period_value2enum_1[] = {
+	{ 0,	6,	"ms1000" },
+	{ 1,	6,	"ms2000" },
+	{ 2,	6,	"ms3000" },
+	{ 3,	6,	"ms4000" },
+	{ 4,	6,	"ms6000" },
+	{ 5,	6,	"ms8000" },
+	{ 6,	7,	"ms12000" },
+	{ 7,	7,	"ms16000" },
+	{ 8,	7,	"ms20000" },
+	{ 9,	7,	"ms24000" },
+	{ 10,	7,	"ms28000" },
+	{ 11,	7,	"ms32000" },
+	{ 12,	7,	"ms64000" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_M7_Period_enum2value_1[] = {
+	0,	/* ms1000(0) */
+	6,	/* ms12000(6) */
+	7,	/* ms16000(7) */
+	1,	/* ms2000(1) */
+	8,	/* ms20000(8) */
+	9,	/* ms24000(9) */
+	10,	/* ms28000(10) */
+	2,	/* ms3000(2) */
+	11,	/* ms32000(11) */
+	3,	/* ms4000(3) */
+	4,	/* ms6000(4) */
+	12,	/* ms64000(12) */
+	5	/* ms8000(5) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_M7_Period_specs_1 = {
+	asn_MAP_RANAP_M7_Period_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_M7_Period_enum2value_1,	/* N => "tag"; sorted by N */
+	13,	/* Number of elements in the maps */
+	14,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_M7_Period_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_M7_Period = {
+	"RANAP_M7-Period",
+	"RANAP_M7-Period",
+	RANAP_M7_Period_free,
+	RANAP_M7_Period_print,
+	RANAP_M7_Period_constraint,
+	RANAP_M7_Period_decode_ber,
+	RANAP_M7_Period_encode_der,
+	RANAP_M7_Period_decode_xer,
+	RANAP_M7_Period_encode_xer,
+	RANAP_M7_Period_decode_uper,
+	RANAP_M7_Period_encode_uper,
+	RANAP_M7_Period_decode_aper,
+	RANAP_M7_Period_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_M7_Period_tags_1,
+	sizeof(asn_DEF_RANAP_M7_Period_tags_1)
+		/sizeof(asn_DEF_RANAP_M7_Period_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_M7_Period_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_M7_Period_tags_1)
+		/sizeof(asn_DEF_RANAP_M7_Period_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_M7_Period_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_M7_Period_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_M7-Period.h b/src/ranap/RANAP_M7-Period.h
new file mode 100644
index 0000000..3fcf0aa
--- /dev/null
+++ b/src/ranap/RANAP_M7-Period.h
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_M7_Period_H_
+#define	_RANAP_M7_Period_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_M7_Period {
+	RANAP_M7_Period_ms1000	= 0,
+	RANAP_M7_Period_ms2000	= 1,
+	RANAP_M7_Period_ms3000	= 2,
+	RANAP_M7_Period_ms4000	= 3,
+	RANAP_M7_Period_ms6000	= 4,
+	RANAP_M7_Period_ms8000	= 5,
+	RANAP_M7_Period_ms12000	= 6,
+	RANAP_M7_Period_ms16000	= 7,
+	RANAP_M7_Period_ms20000	= 8,
+	RANAP_M7_Period_ms24000	= 9,
+	RANAP_M7_Period_ms28000	= 10,
+	RANAP_M7_Period_ms32000	= 11,
+	RANAP_M7_Period_ms64000	= 12
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_M7_Period;
+
+/* RANAP_M7-Period */
+typedef long	 RANAP_M7_Period_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_M7_Period;
+asn_struct_free_f RANAP_M7_Period_free;
+asn_struct_print_f RANAP_M7_Period_print;
+asn_constr_check_f RANAP_M7_Period_constraint;
+ber_type_decoder_f RANAP_M7_Period_decode_ber;
+der_type_encoder_f RANAP_M7_Period_encode_der;
+xer_type_decoder_f RANAP_M7_Period_decode_xer;
+xer_type_encoder_f RANAP_M7_Period_encode_xer;
+per_type_decoder_f RANAP_M7_Period_decode_uper;
+per_type_encoder_f RANAP_M7_Period_encode_uper;
+per_type_decoder_f RANAP_M7_Period_decode_aper;
+per_type_encoder_f RANAP_M7_Period_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_M7_Period_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_M7Report.c b/src/ranap/RANAP_M7Report.c
new file mode 100644
index 0000000..496c709
--- /dev/null
+++ b/src/ranap/RANAP_M7Report.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_M7Report.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_M7Report_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_M7Report, m7_period),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_M7_Period,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"m7-period"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_M7Report, m7_links_to_log),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Links_to_log,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"m7-links-to-log"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_M7Report, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_M7Report_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_M7Report_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_M7Report_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m7-period */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m7-links-to-log */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_M7Report_specs_1 = {
+	sizeof(struct RANAP_M7Report),
+	offsetof(struct RANAP_M7Report, _asn_ctx),
+	asn_MAP_RANAP_M7Report_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_M7Report_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_M7Report = {
+	"RANAP_M7Report",
+	"RANAP_M7Report",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_M7Report_tags_1,
+	sizeof(asn_DEF_RANAP_M7Report_tags_1)
+		/sizeof(asn_DEF_RANAP_M7Report_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_M7Report_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_M7Report_tags_1)
+		/sizeof(asn_DEF_RANAP_M7Report_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_M7Report_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_M7Report_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_M7Report.h b/src/ranap/RANAP_M7Report.h
new file mode 100644
index 0000000..1fe8697
--- /dev/null
+++ b/src/ranap/RANAP_M7Report.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_M7Report_H_
+#define	_RANAP_M7Report_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_M7-Period.h"
+#include "RANAP_Links-to-log.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_M7Report */
+typedef struct RANAP_M7Report {
+	RANAP_M7_Period_t	 m7_period;
+	RANAP_Links_to_log_t	 m7_links_to_log;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_M7Report_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_M7Report;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_M7Report_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMS-PTP-RAB-ID.c b/src/ranap/RANAP_MBMS-PTP-RAB-ID.c
new file mode 100644
index 0000000..8962aa9
--- /dev/null
+++ b/src/ranap/RANAP_MBMS-PTP-RAB-ID.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MBMS-PTP-RAB-ID.h"
+
+int
+RANAP_MBMS_PTP_RAB_ID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 8l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MBMS_PTP_RAB_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_BIT_STRING.free_struct;
+	td->print_struct   = asn_DEF_BIT_STRING.print_struct;
+	td->check_constraints = asn_DEF_BIT_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_BIT_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_BIT_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_BIT_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_BIT_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_BIT_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_BIT_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_BIT_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_BIT_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_BIT_STRING.per_constraints;
+	td->elements       = asn_DEF_BIT_STRING.elements;
+	td->elements_count = asn_DEF_BIT_STRING.elements_count;
+	td->specifics      = asn_DEF_BIT_STRING.specifics;
+}
+
+void
+RANAP_MBMS_PTP_RAB_ID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MBMS_PTP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MBMS_PTP_RAB_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMS_PTP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMS_PTP_RAB_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MBMS_PTP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MBMS_PTP_RAB_ID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMS_PTP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMS_PTP_RAB_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MBMS_PTP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MBMS_PTP_RAB_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMS_PTP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMS_PTP_RAB_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMS_PTP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MBMS_PTP_RAB_ID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMS_PTP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MBMS_PTP_RAB_ID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMS_PTP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MBMS_PTP_RAB_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMS_PTP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MBMS_PTP_RAB_ID_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  8l,  8l }	/* (SIZE(8..8)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMS_PTP_RAB_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMS_PTP_RAB_ID = {
+	"RANAP_MBMS-PTP-RAB-ID",
+	"RANAP_MBMS-PTP-RAB-ID",
+	RANAP_MBMS_PTP_RAB_ID_free,
+	RANAP_MBMS_PTP_RAB_ID_print,
+	RANAP_MBMS_PTP_RAB_ID_constraint,
+	RANAP_MBMS_PTP_RAB_ID_decode_ber,
+	RANAP_MBMS_PTP_RAB_ID_encode_der,
+	RANAP_MBMS_PTP_RAB_ID_decode_xer,
+	RANAP_MBMS_PTP_RAB_ID_encode_xer,
+	RANAP_MBMS_PTP_RAB_ID_decode_uper,
+	RANAP_MBMS_PTP_RAB_ID_encode_uper,
+	RANAP_MBMS_PTP_RAB_ID_decode_aper,
+	RANAP_MBMS_PTP_RAB_ID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMS_PTP_RAB_ID_tags_1,
+	sizeof(asn_DEF_RANAP_MBMS_PTP_RAB_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMS_PTP_RAB_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMS_PTP_RAB_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMS_PTP_RAB_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMS_PTP_RAB_ID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MBMS_PTP_RAB_ID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_MBMS-PTP-RAB-ID.h b/src/ranap/RANAP_MBMS-PTP-RAB-ID.h
new file mode 100644
index 0000000..cbc2654
--- /dev/null
+++ b/src/ranap/RANAP_MBMS-PTP-RAB-ID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MBMS_PTP_RAB_ID_H_
+#define	_RANAP_MBMS_PTP_RAB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMS-PTP-RAB-ID */
+typedef BIT_STRING_t	 RANAP_MBMS_PTP_RAB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMS_PTP_RAB_ID;
+asn_struct_free_f RANAP_MBMS_PTP_RAB_ID_free;
+asn_struct_print_f RANAP_MBMS_PTP_RAB_ID_print;
+asn_constr_check_f RANAP_MBMS_PTP_RAB_ID_constraint;
+ber_type_decoder_f RANAP_MBMS_PTP_RAB_ID_decode_ber;
+der_type_encoder_f RANAP_MBMS_PTP_RAB_ID_encode_der;
+xer_type_decoder_f RANAP_MBMS_PTP_RAB_ID_decode_xer;
+xer_type_encoder_f RANAP_MBMS_PTP_RAB_ID_encode_xer;
+per_type_decoder_f RANAP_MBMS_PTP_RAB_ID_decode_uper;
+per_type_encoder_f RANAP_MBMS_PTP_RAB_ID_encode_uper;
+per_type_decoder_f RANAP_MBMS_PTP_RAB_ID_decode_aper;
+per_type_encoder_f RANAP_MBMS_PTP_RAB_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMS_PTP_RAB_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSBearerServiceType.c b/src/ranap/RANAP_MBMSBearerServiceType.c
new file mode 100644
index 0000000..e6128f5
--- /dev/null
+++ b/src/ranap/RANAP_MBMSBearerServiceType.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MBMSBearerServiceType.h"
+
+int
+RANAP_MBMSBearerServiceType_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MBMSBearerServiceType_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_MBMSBearerServiceType_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MBMSBearerServiceType_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MBMSBearerServiceType_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSBearerServiceType_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSBearerServiceType_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MBMSBearerServiceType_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MBMSBearerServiceType_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSBearerServiceType_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSBearerServiceType_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MBMSBearerServiceType_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MBMSBearerServiceType_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSBearerServiceType_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSBearerServiceType_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSBearerServiceType_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MBMSBearerServiceType_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSBearerServiceType_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MBMSBearerServiceType_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSBearerServiceType_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MBMSBearerServiceType_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSBearerServiceType_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MBMSBearerServiceType_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_MBMSBearerServiceType_value2enum_1[] = {
+	{ 0,	9,	"multicast" },
+	{ 1,	9,	"broadcast" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_MBMSBearerServiceType_enum2value_1[] = {
+	1,	/* broadcast(1) */
+	0	/* multicast(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_MBMSBearerServiceType_specs_1 = {
+	asn_MAP_RANAP_MBMSBearerServiceType_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_MBMSBearerServiceType_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSBearerServiceType_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSBearerServiceType = {
+	"RANAP_MBMSBearerServiceType",
+	"RANAP_MBMSBearerServiceType",
+	RANAP_MBMSBearerServiceType_free,
+	RANAP_MBMSBearerServiceType_print,
+	RANAP_MBMSBearerServiceType_constraint,
+	RANAP_MBMSBearerServiceType_decode_ber,
+	RANAP_MBMSBearerServiceType_encode_der,
+	RANAP_MBMSBearerServiceType_decode_xer,
+	RANAP_MBMSBearerServiceType_encode_xer,
+	RANAP_MBMSBearerServiceType_decode_uper,
+	RANAP_MBMSBearerServiceType_encode_uper,
+	RANAP_MBMSBearerServiceType_decode_aper,
+	RANAP_MBMSBearerServiceType_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSBearerServiceType_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSBearerServiceType_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSBearerServiceType_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSBearerServiceType_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSBearerServiceType_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSBearerServiceType_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MBMSBearerServiceType_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_MBMSBearerServiceType_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSBearerServiceType.h b/src/ranap/RANAP_MBMSBearerServiceType.h
new file mode 100644
index 0000000..03f32f3
--- /dev/null
+++ b/src/ranap/RANAP_MBMSBearerServiceType.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MBMSBearerServiceType_H_
+#define	_RANAP_MBMSBearerServiceType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_MBMSBearerServiceType {
+	RANAP_MBMSBearerServiceType_multicast	= 0,
+	RANAP_MBMSBearerServiceType_broadcast	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_MBMSBearerServiceType;
+
+/* RANAP_MBMSBearerServiceType */
+typedef long	 RANAP_MBMSBearerServiceType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSBearerServiceType;
+asn_struct_free_f RANAP_MBMSBearerServiceType_free;
+asn_struct_print_f RANAP_MBMSBearerServiceType_print;
+asn_constr_check_f RANAP_MBMSBearerServiceType_constraint;
+ber_type_decoder_f RANAP_MBMSBearerServiceType_decode_ber;
+der_type_encoder_f RANAP_MBMSBearerServiceType_encode_der;
+xer_type_decoder_f RANAP_MBMSBearerServiceType_decode_xer;
+xer_type_encoder_f RANAP_MBMSBearerServiceType_encode_xer;
+per_type_decoder_f RANAP_MBMSBearerServiceType_decode_uper;
+per_type_encoder_f RANAP_MBMSBearerServiceType_encode_uper;
+per_type_decoder_f RANAP_MBMSBearerServiceType_decode_aper;
+per_type_encoder_f RANAP_MBMSBearerServiceType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSBearerServiceType_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSCNDe-Registration.c b/src/ranap/RANAP_MBMSCNDe-Registration.c
new file mode 100644
index 0000000..ec35a23
--- /dev/null
+++ b/src/ranap/RANAP_MBMSCNDe-Registration.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MBMSCNDe-Registration.h"
+
+int
+RANAP_MBMSCNDe_Registration_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MBMSCNDe_Registration_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_MBMSCNDe_Registration_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MBMSCNDe_Registration_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MBMSCNDe_Registration_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSCNDe_Registration_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSCNDe_Registration_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MBMSCNDe_Registration_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MBMSCNDe_Registration_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSCNDe_Registration_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSCNDe_Registration_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MBMSCNDe_Registration_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MBMSCNDe_Registration_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSCNDe_Registration_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSCNDe_Registration_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSCNDe_Registration_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MBMSCNDe_Registration_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSCNDe_Registration_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MBMSCNDe_Registration_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSCNDe_Registration_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MBMSCNDe_Registration_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSCNDe_Registration_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MBMSCNDe_Registration_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_MBMSCNDe_Registration_value2enum_1[] = {
+	{ 0,	17,	"normalsessionstop" },
+	{ 1,	10,	"deregister" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_MBMSCNDe_Registration_enum2value_1[] = {
+	1,	/* deregister(1) */
+	0	/* normalsessionstop(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_MBMSCNDe_Registration_specs_1 = {
+	asn_MAP_RANAP_MBMSCNDe_Registration_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_MBMSCNDe_Registration_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSCNDe_Registration_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSCNDe_Registration = {
+	"RANAP_MBMSCNDe-Registration",
+	"RANAP_MBMSCNDe-Registration",
+	RANAP_MBMSCNDe_Registration_free,
+	RANAP_MBMSCNDe_Registration_print,
+	RANAP_MBMSCNDe_Registration_constraint,
+	RANAP_MBMSCNDe_Registration_decode_ber,
+	RANAP_MBMSCNDe_Registration_encode_der,
+	RANAP_MBMSCNDe_Registration_decode_xer,
+	RANAP_MBMSCNDe_Registration_encode_xer,
+	RANAP_MBMSCNDe_Registration_decode_uper,
+	RANAP_MBMSCNDe_Registration_encode_uper,
+	RANAP_MBMSCNDe_Registration_decode_aper,
+	RANAP_MBMSCNDe_Registration_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSCNDe_Registration_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSCNDe_Registration_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSCNDe_Registration_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSCNDe_Registration_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSCNDe_Registration_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSCNDe_Registration_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MBMSCNDe_Registration_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_MBMSCNDe_Registration_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSCNDe-Registration.h b/src/ranap/RANAP_MBMSCNDe-Registration.h
new file mode 100644
index 0000000..793e2f7
--- /dev/null
+++ b/src/ranap/RANAP_MBMSCNDe-Registration.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MBMSCNDe_Registration_H_
+#define	_RANAP_MBMSCNDe_Registration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_MBMSCNDe_Registration {
+	RANAP_MBMSCNDe_Registration_normalsessionstop	= 0,
+	RANAP_MBMSCNDe_Registration_deregister	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_MBMSCNDe_Registration;
+
+/* RANAP_MBMSCNDe-Registration */
+typedef long	 RANAP_MBMSCNDe_Registration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSCNDe_Registration;
+asn_struct_free_f RANAP_MBMSCNDe_Registration_free;
+asn_struct_print_f RANAP_MBMSCNDe_Registration_print;
+asn_constr_check_f RANAP_MBMSCNDe_Registration_constraint;
+ber_type_decoder_f RANAP_MBMSCNDe_Registration_decode_ber;
+der_type_encoder_f RANAP_MBMSCNDe_Registration_encode_der;
+xer_type_decoder_f RANAP_MBMSCNDe_Registration_decode_xer;
+xer_type_encoder_f RANAP_MBMSCNDe_Registration_encode_xer;
+per_type_decoder_f RANAP_MBMSCNDe_Registration_decode_uper;
+per_type_encoder_f RANAP_MBMSCNDe_Registration_encode_uper;
+per_type_decoder_f RANAP_MBMSCNDe_Registration_decode_aper;
+per_type_encoder_f RANAP_MBMSCNDe_Registration_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSCNDe_Registration_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSCNDe-RegistrationRequest.c b/src/ranap/RANAP_MBMSCNDe-RegistrationRequest.c
new file mode 100644
index 0000000..4abe8f3
--- /dev/null
+++ b/src/ranap/RANAP_MBMSCNDe-RegistrationRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSCNDe-RegistrationRequest.h"
+
+static int
+memb_mBMSCNDe_RegistrationRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSCNDe_RegistrationRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSCNDe_RegistrationRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSCNDe_RegistrationRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSCNDe_RegistrationRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSCNDe_RegistrationRequest_ies_specs_2 = {
+	sizeof(struct mBMSCNDe_RegistrationRequest_ies),
+	offsetof(struct mBMSCNDe_RegistrationRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSCNDe_RegistrationRequest_ies_2 = {
+	"mBMSCNDe-RegistrationRequest-ies",
+	"mBMSCNDe-RegistrationRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSCNDe_RegistrationRequest_ies_tags_2,
+	sizeof(asn_DEF_mBMSCNDe_RegistrationRequest_ies_tags_2)
+		/sizeof(asn_DEF_mBMSCNDe_RegistrationRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSCNDe_RegistrationRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSCNDe_RegistrationRequest_ies_tags_2)
+		/sizeof(asn_DEF_mBMSCNDe_RegistrationRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSCNDe_RegistrationRequest_ies_constr_2,
+	asn_MBR_mBMSCNDe_RegistrationRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSCNDe_RegistrationRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSCNDe_RegistrationRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSCNDe_RegistrationRequest, mBMSCNDe_RegistrationRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSCNDe_RegistrationRequest_ies_2,
+		memb_mBMSCNDe_RegistrationRequest_ies_constraint_1,
+		&asn_PER_memb_mBMSCNDe_RegistrationRequest_ies_constr_2,
+		0,
+		"mBMSCNDe-RegistrationRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSCNDe_RegistrationRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSCNDe_RegistrationRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSCNDe-RegistrationRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSCNDe_RegistrationRequest_specs_1 = {
+	sizeof(struct RANAP_MBMSCNDe_RegistrationRequest),
+	offsetof(struct RANAP_MBMSCNDe_RegistrationRequest, _asn_ctx),
+	asn_MAP_RANAP_MBMSCNDe_RegistrationRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSCNDe_RegistrationRequest = {
+	"RANAP_MBMSCNDe-RegistrationRequest",
+	"RANAP_MBMSCNDe-RegistrationRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSCNDe_RegistrationRequest_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSCNDe_RegistrationRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSCNDe_RegistrationRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSCNDe_RegistrationRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSCNDe_RegistrationRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSCNDe_RegistrationRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSCNDe_RegistrationRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSCNDe_RegistrationRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSCNDe-RegistrationRequest.h b/src/ranap/RANAP_MBMSCNDe-RegistrationRequest.h
new file mode 100644
index 0000000..efe34e0
--- /dev/null
+++ b/src/ranap/RANAP_MBMSCNDe-RegistrationRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSCNDe_RegistrationRequest_H_
+#define	_RANAP_MBMSCNDe_RegistrationRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSCNDe-RegistrationRequest */
+typedef struct RANAP_MBMSCNDe_RegistrationRequest {
+	struct mBMSCNDe_RegistrationRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSCNDe_RegistrationRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSCNDe_RegistrationRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSCNDe_RegistrationRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSCNDe_RegistrationRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSCNDe-RegistrationResponse.c b/src/ranap/RANAP_MBMSCNDe-RegistrationResponse.c
new file mode 100644
index 0000000..5bdbe6b
--- /dev/null
+++ b/src/ranap/RANAP_MBMSCNDe-RegistrationResponse.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSCNDe-RegistrationResponse.h"
+
+static int
+memb_mBMSCNDe_RegistrationResponse_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSCNDe_RegistrationResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSCNDe_RegistrationResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSCNDe_RegistrationResponse_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSCNDe_RegistrationResponse_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSCNDe_RegistrationResponse_ies_specs_2 = {
+	sizeof(struct mBMSCNDe_RegistrationResponse_ies),
+	offsetof(struct mBMSCNDe_RegistrationResponse_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSCNDe_RegistrationResponse_ies_2 = {
+	"mBMSCNDe-RegistrationResponse-ies",
+	"mBMSCNDe-RegistrationResponse-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSCNDe_RegistrationResponse_ies_tags_2,
+	sizeof(asn_DEF_mBMSCNDe_RegistrationResponse_ies_tags_2)
+		/sizeof(asn_DEF_mBMSCNDe_RegistrationResponse_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSCNDe_RegistrationResponse_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSCNDe_RegistrationResponse_ies_tags_2)
+		/sizeof(asn_DEF_mBMSCNDe_RegistrationResponse_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSCNDe_RegistrationResponse_ies_constr_2,
+	asn_MBR_mBMSCNDe_RegistrationResponse_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSCNDe_RegistrationResponse_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSCNDe_RegistrationResponse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSCNDe_RegistrationResponse, mBMSCNDe_RegistrationResponse_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSCNDe_RegistrationResponse_ies_2,
+		memb_mBMSCNDe_RegistrationResponse_ies_constraint_1,
+		&asn_PER_memb_mBMSCNDe_RegistrationResponse_ies_constr_2,
+		0,
+		"mBMSCNDe-RegistrationResponse-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSCNDe_RegistrationResponse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSCNDe_RegistrationResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSCNDe-RegistrationResponse-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSCNDe_RegistrationResponse_specs_1 = {
+	sizeof(struct RANAP_MBMSCNDe_RegistrationResponse),
+	offsetof(struct RANAP_MBMSCNDe_RegistrationResponse, _asn_ctx),
+	asn_MAP_RANAP_MBMSCNDe_RegistrationResponse_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSCNDe_RegistrationResponse = {
+	"RANAP_MBMSCNDe-RegistrationResponse",
+	"RANAP_MBMSCNDe-RegistrationResponse",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSCNDe_RegistrationResponse_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSCNDe_RegistrationResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSCNDe_RegistrationResponse_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSCNDe_RegistrationResponse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSCNDe_RegistrationResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSCNDe_RegistrationResponse_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSCNDe_RegistrationResponse_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSCNDe_RegistrationResponse_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSCNDe-RegistrationResponse.h b/src/ranap/RANAP_MBMSCNDe-RegistrationResponse.h
new file mode 100644
index 0000000..d9be786
--- /dev/null
+++ b/src/ranap/RANAP_MBMSCNDe-RegistrationResponse.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSCNDe_RegistrationResponse_H_
+#define	_RANAP_MBMSCNDe_RegistrationResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSCNDe-RegistrationResponse */
+typedef struct RANAP_MBMSCNDe_RegistrationResponse {
+	struct mBMSCNDe_RegistrationResponse_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSCNDe_RegistrationResponse_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSCNDe_RegistrationResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSCNDe_RegistrationResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSCNDe_RegistrationResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSCountingInformation.c b/src/ranap/RANAP_MBMSCountingInformation.c
new file mode 100644
index 0000000..1804f22
--- /dev/null
+++ b/src/ranap/RANAP_MBMSCountingInformation.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MBMSCountingInformation.h"
+
+int
+RANAP_MBMSCountingInformation_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MBMSCountingInformation_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_MBMSCountingInformation_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MBMSCountingInformation_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MBMSCountingInformation_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSCountingInformation_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSCountingInformation_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MBMSCountingInformation_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MBMSCountingInformation_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSCountingInformation_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSCountingInformation_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MBMSCountingInformation_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MBMSCountingInformation_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSCountingInformation_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSCountingInformation_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSCountingInformation_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MBMSCountingInformation_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSCountingInformation_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MBMSCountingInformation_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSCountingInformation_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MBMSCountingInformation_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSCountingInformation_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MBMSCountingInformation_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_MBMSCountingInformation_value2enum_1[] = {
+	{ 0,	8,	"counting" },
+	{ 1,	11,	"notcounting" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_MBMSCountingInformation_enum2value_1[] = {
+	0,	/* counting(0) */
+	1	/* notcounting(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_MBMSCountingInformation_specs_1 = {
+	asn_MAP_RANAP_MBMSCountingInformation_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_MBMSCountingInformation_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSCountingInformation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSCountingInformation = {
+	"RANAP_MBMSCountingInformation",
+	"RANAP_MBMSCountingInformation",
+	RANAP_MBMSCountingInformation_free,
+	RANAP_MBMSCountingInformation_print,
+	RANAP_MBMSCountingInformation_constraint,
+	RANAP_MBMSCountingInformation_decode_ber,
+	RANAP_MBMSCountingInformation_encode_der,
+	RANAP_MBMSCountingInformation_decode_xer,
+	RANAP_MBMSCountingInformation_encode_xer,
+	RANAP_MBMSCountingInformation_decode_uper,
+	RANAP_MBMSCountingInformation_encode_uper,
+	RANAP_MBMSCountingInformation_decode_aper,
+	RANAP_MBMSCountingInformation_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSCountingInformation_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSCountingInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSCountingInformation_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSCountingInformation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSCountingInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSCountingInformation_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MBMSCountingInformation_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_MBMSCountingInformation_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSCountingInformation.h b/src/ranap/RANAP_MBMSCountingInformation.h
new file mode 100644
index 0000000..cb56317
--- /dev/null
+++ b/src/ranap/RANAP_MBMSCountingInformation.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MBMSCountingInformation_H_
+#define	_RANAP_MBMSCountingInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_MBMSCountingInformation {
+	RANAP_MBMSCountingInformation_counting	= 0,
+	RANAP_MBMSCountingInformation_notcounting	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_MBMSCountingInformation;
+
+/* RANAP_MBMSCountingInformation */
+typedef long	 RANAP_MBMSCountingInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSCountingInformation;
+asn_struct_free_f RANAP_MBMSCountingInformation_free;
+asn_struct_print_f RANAP_MBMSCountingInformation_print;
+asn_constr_check_f RANAP_MBMSCountingInformation_constraint;
+ber_type_decoder_f RANAP_MBMSCountingInformation_decode_ber;
+der_type_encoder_f RANAP_MBMSCountingInformation_encode_der;
+xer_type_decoder_f RANAP_MBMSCountingInformation_decode_xer;
+xer_type_encoder_f RANAP_MBMSCountingInformation_encode_xer;
+per_type_decoder_f RANAP_MBMSCountingInformation_decode_uper;
+per_type_encoder_f RANAP_MBMSCountingInformation_encode_uper;
+per_type_decoder_f RANAP_MBMSCountingInformation_decode_aper;
+per_type_encoder_f RANAP_MBMSCountingInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSCountingInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSHCIndicator.c b/src/ranap/RANAP_MBMSHCIndicator.c
new file mode 100644
index 0000000..55afb2a
--- /dev/null
+++ b/src/ranap/RANAP_MBMSHCIndicator.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MBMSHCIndicator.h"
+
+int
+RANAP_MBMSHCIndicator_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MBMSHCIndicator_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_MBMSHCIndicator_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MBMSHCIndicator_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MBMSHCIndicator_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSHCIndicator_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSHCIndicator_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MBMSHCIndicator_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MBMSHCIndicator_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSHCIndicator_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSHCIndicator_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MBMSHCIndicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MBMSHCIndicator_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSHCIndicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSHCIndicator_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSHCIndicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MBMSHCIndicator_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSHCIndicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MBMSHCIndicator_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSHCIndicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MBMSHCIndicator_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSHCIndicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MBMSHCIndicator_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_MBMSHCIndicator_value2enum_1[] = {
+	{ 0,	19,	"uncompressed-header" },
+	{ 1,	17,	"compressed-header" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_MBMSHCIndicator_enum2value_1[] = {
+	1,	/* compressed-header(1) */
+	0	/* uncompressed-header(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_MBMSHCIndicator_specs_1 = {
+	asn_MAP_RANAP_MBMSHCIndicator_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_MBMSHCIndicator_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSHCIndicator_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSHCIndicator = {
+	"RANAP_MBMSHCIndicator",
+	"RANAP_MBMSHCIndicator",
+	RANAP_MBMSHCIndicator_free,
+	RANAP_MBMSHCIndicator_print,
+	RANAP_MBMSHCIndicator_constraint,
+	RANAP_MBMSHCIndicator_decode_ber,
+	RANAP_MBMSHCIndicator_encode_der,
+	RANAP_MBMSHCIndicator_decode_xer,
+	RANAP_MBMSHCIndicator_encode_xer,
+	RANAP_MBMSHCIndicator_decode_uper,
+	RANAP_MBMSHCIndicator_encode_uper,
+	RANAP_MBMSHCIndicator_decode_aper,
+	RANAP_MBMSHCIndicator_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSHCIndicator_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSHCIndicator_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSHCIndicator_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSHCIndicator_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSHCIndicator_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSHCIndicator_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MBMSHCIndicator_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_MBMSHCIndicator_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSHCIndicator.h b/src/ranap/RANAP_MBMSHCIndicator.h
new file mode 100644
index 0000000..71cdccc
--- /dev/null
+++ b/src/ranap/RANAP_MBMSHCIndicator.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MBMSHCIndicator_H_
+#define	_RANAP_MBMSHCIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_MBMSHCIndicator {
+	RANAP_MBMSHCIndicator_uncompressed_header	= 0,
+	RANAP_MBMSHCIndicator_compressed_header	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_MBMSHCIndicator;
+
+/* RANAP_MBMSHCIndicator */
+typedef long	 RANAP_MBMSHCIndicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSHCIndicator;
+asn_struct_free_f RANAP_MBMSHCIndicator_free;
+asn_struct_print_f RANAP_MBMSHCIndicator_print;
+asn_constr_check_f RANAP_MBMSHCIndicator_constraint;
+ber_type_decoder_f RANAP_MBMSHCIndicator_decode_ber;
+der_type_encoder_f RANAP_MBMSHCIndicator_encode_der;
+xer_type_decoder_f RANAP_MBMSHCIndicator_decode_xer;
+xer_type_encoder_f RANAP_MBMSHCIndicator_encode_xer;
+per_type_decoder_f RANAP_MBMSHCIndicator_decode_uper;
+per_type_encoder_f RANAP_MBMSHCIndicator_encode_uper;
+per_type_decoder_f RANAP_MBMSHCIndicator_decode_aper;
+per_type_encoder_f RANAP_MBMSHCIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSHCIndicator_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSIPMulticastAddressandAPNRequest.c b/src/ranap/RANAP_MBMSIPMulticastAddressandAPNRequest.c
new file mode 100644
index 0000000..fdd21c1
--- /dev/null
+++ b/src/ranap/RANAP_MBMSIPMulticastAddressandAPNRequest.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MBMSIPMulticastAddressandAPNRequest.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_MBMSIPMulticastAddressandAPNRequest_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 9,  9,  1l,  512l }	/* (SIZE(1..512)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSIPMulticastAddressandAPNRequest_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_TMGI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSIPMulticastAddressandAPNRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_MBMSIPMulticastAddressandAPNRequest_specs_1 = {
+	sizeof(struct RANAP_MBMSIPMulticastAddressandAPNRequest),
+	offsetof(struct RANAP_MBMSIPMulticastAddressandAPNRequest, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSIPMulticastAddressandAPNRequest = {
+	"RANAP_MBMSIPMulticastAddressandAPNRequest",
+	"RANAP_MBMSIPMulticastAddressandAPNRequest",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSIPMulticastAddressandAPNRequest_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSIPMulticastAddressandAPNRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSIPMulticastAddressandAPNRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSIPMulticastAddressandAPNRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSIPMulticastAddressandAPNRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSIPMulticastAddressandAPNRequest_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MBMSIPMulticastAddressandAPNRequest_constr_1,
+	asn_MBR_RANAP_MBMSIPMulticastAddressandAPNRequest_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_MBMSIPMulticastAddressandAPNRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSIPMulticastAddressandAPNRequest.h b/src/ranap/RANAP_MBMSIPMulticastAddressandAPNRequest.h
new file mode 100644
index 0000000..4fceb72
--- /dev/null
+++ b/src/ranap/RANAP_MBMSIPMulticastAddressandAPNRequest.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MBMSIPMulticastAddressandAPNRequest_H_
+#define	_RANAP_MBMSIPMulticastAddressandAPNRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_TMGI.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSIPMulticastAddressandAPNRequest */
+typedef struct RANAP_MBMSIPMulticastAddressandAPNRequest {
+	A_SEQUENCE_OF(RANAP_TMGI_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSIPMulticastAddressandAPNRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSIPMulticastAddressandAPNRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSIPMulticastAddressandAPNRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSIPMulticastAddressandAPNlist.c b/src/ranap/RANAP_MBMSIPMulticastAddressandAPNlist.c
new file mode 100644
index 0000000..c84c547
--- /dev/null
+++ b/src/ranap/RANAP_MBMSIPMulticastAddressandAPNlist.c
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MBMSIPMulticastAddressandAPNlist.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSIPMulticastAddressandAPNlist_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSIPMulticastAddressandAPNlist, tMGI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TMGI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"tMGI"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSIPMulticastAddressandAPNlist, iPMulticastAddress),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IPMulticastAddress,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iPMulticastAddress"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSIPMulticastAddressandAPNlist, aPN),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_APN,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"aPN"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_MBMSIPMulticastAddressandAPNlist, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_MBMSIPMulticastAddressandAPNlist_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSIPMulticastAddressandAPNlist_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSIPMulticastAddressandAPNlist_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tMGI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iPMulticastAddress */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* aPN */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSIPMulticastAddressandAPNlist_specs_1 = {
+	sizeof(struct RANAP_MBMSIPMulticastAddressandAPNlist),
+	offsetof(struct RANAP_MBMSIPMulticastAddressandAPNlist, _asn_ctx),
+	asn_MAP_RANAP_MBMSIPMulticastAddressandAPNlist_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_MBMSIPMulticastAddressandAPNlist_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	3,	/* Start extensions */
+	5	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSIPMulticastAddressandAPNlist = {
+	"RANAP_MBMSIPMulticastAddressandAPNlist",
+	"RANAP_MBMSIPMulticastAddressandAPNlist",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSIPMulticastAddressandAPNlist_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSIPMulticastAddressandAPNlist_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSIPMulticastAddressandAPNlist_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSIPMulticastAddressandAPNlist_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSIPMulticastAddressandAPNlist_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSIPMulticastAddressandAPNlist_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSIPMulticastAddressandAPNlist_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_MBMSIPMulticastAddressandAPNlist_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSIPMulticastAddressandAPNlist.h b/src/ranap/RANAP_MBMSIPMulticastAddressandAPNlist.h
new file mode 100644
index 0000000..9654467
--- /dev/null
+++ b/src/ranap/RANAP_MBMSIPMulticastAddressandAPNlist.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MBMSIPMulticastAddressandAPNlist_H_
+#define	_RANAP_MBMSIPMulticastAddressandAPNlist_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_TMGI.h"
+#include "RANAP_IPMulticastAddress.h"
+#include "RANAP_APN.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSIPMulticastAddressandAPNlist */
+typedef struct RANAP_MBMSIPMulticastAddressandAPNlist {
+	RANAP_TMGI_t	 tMGI;
+	RANAP_IPMulticastAddress_t	 iPMulticastAddress;
+	RANAP_APN_t	 aPN;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSIPMulticastAddressandAPNlist_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSIPMulticastAddressandAPNlist;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSIPMulticastAddressandAPNlist_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSLinkingInformation.c b/src/ranap/RANAP_MBMSLinkingInformation.c
new file mode 100644
index 0000000..77d5ffb
--- /dev/null
+++ b/src/ranap/RANAP_MBMSLinkingInformation.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MBMSLinkingInformation.h"
+
+int
+RANAP_MBMSLinkingInformation_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MBMSLinkingInformation_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_MBMSLinkingInformation_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MBMSLinkingInformation_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MBMSLinkingInformation_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSLinkingInformation_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSLinkingInformation_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MBMSLinkingInformation_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MBMSLinkingInformation_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSLinkingInformation_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSLinkingInformation_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MBMSLinkingInformation_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MBMSLinkingInformation_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSLinkingInformation_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSLinkingInformation_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSLinkingInformation_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MBMSLinkingInformation_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSLinkingInformation_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MBMSLinkingInformation_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSLinkingInformation_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MBMSLinkingInformation_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSLinkingInformation_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MBMSLinkingInformation_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_MBMSLinkingInformation_value2enum_1[] = {
+	{ 0,	32,	"uE-has-joined-multicast-services" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_MBMSLinkingInformation_enum2value_1[] = {
+	0	/* uE-has-joined-multicast-services(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_MBMSLinkingInformation_specs_1 = {
+	asn_MAP_RANAP_MBMSLinkingInformation_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_MBMSLinkingInformation_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSLinkingInformation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSLinkingInformation = {
+	"RANAP_MBMSLinkingInformation",
+	"RANAP_MBMSLinkingInformation",
+	RANAP_MBMSLinkingInformation_free,
+	RANAP_MBMSLinkingInformation_print,
+	RANAP_MBMSLinkingInformation_constraint,
+	RANAP_MBMSLinkingInformation_decode_ber,
+	RANAP_MBMSLinkingInformation_encode_der,
+	RANAP_MBMSLinkingInformation_decode_xer,
+	RANAP_MBMSLinkingInformation_encode_xer,
+	RANAP_MBMSLinkingInformation_decode_uper,
+	RANAP_MBMSLinkingInformation_encode_uper,
+	RANAP_MBMSLinkingInformation_decode_aper,
+	RANAP_MBMSLinkingInformation_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSLinkingInformation_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSLinkingInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSLinkingInformation_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSLinkingInformation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSLinkingInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSLinkingInformation_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MBMSLinkingInformation_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_MBMSLinkingInformation_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSLinkingInformation.h b/src/ranap/RANAP_MBMSLinkingInformation.h
new file mode 100644
index 0000000..8ce5bc2
--- /dev/null
+++ b/src/ranap/RANAP_MBMSLinkingInformation.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MBMSLinkingInformation_H_
+#define	_RANAP_MBMSLinkingInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_MBMSLinkingInformation {
+	RANAP_MBMSLinkingInformation_uE_has_joined_multicast_services	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_MBMSLinkingInformation;
+
+/* RANAP_MBMSLinkingInformation */
+typedef long	 RANAP_MBMSLinkingInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSLinkingInformation;
+asn_struct_free_f RANAP_MBMSLinkingInformation_free;
+asn_struct_print_f RANAP_MBMSLinkingInformation_print;
+asn_constr_check_f RANAP_MBMSLinkingInformation_constraint;
+ber_type_decoder_f RANAP_MBMSLinkingInformation_decode_ber;
+der_type_encoder_f RANAP_MBMSLinkingInformation_encode_der;
+xer_type_decoder_f RANAP_MBMSLinkingInformation_decode_xer;
+xer_type_encoder_f RANAP_MBMSLinkingInformation_encode_xer;
+per_type_decoder_f RANAP_MBMSLinkingInformation_decode_uper;
+per_type_encoder_f RANAP_MBMSLinkingInformation_encode_uper;
+per_type_decoder_f RANAP_MBMSLinkingInformation_decode_aper;
+per_type_encoder_f RANAP_MBMSLinkingInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSLinkingInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSRABEstablishmentIndication.c b/src/ranap/RANAP_MBMSRABEstablishmentIndication.c
new file mode 100644
index 0000000..78c0ae0
--- /dev/null
+++ b/src/ranap/RANAP_MBMSRABEstablishmentIndication.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSRABEstablishmentIndication.h"
+
+static int
+memb_mBMSRABEstablishmentIndication_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSRABEstablishmentIndication_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSRABEstablishmentIndication_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSRABEstablishmentIndication_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSRABEstablishmentIndication_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSRABEstablishmentIndication_ies_specs_2 = {
+	sizeof(struct mBMSRABEstablishmentIndication_ies),
+	offsetof(struct mBMSRABEstablishmentIndication_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSRABEstablishmentIndication_ies_2 = {
+	"mBMSRABEstablishmentIndication-ies",
+	"mBMSRABEstablishmentIndication-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSRABEstablishmentIndication_ies_tags_2,
+	sizeof(asn_DEF_mBMSRABEstablishmentIndication_ies_tags_2)
+		/sizeof(asn_DEF_mBMSRABEstablishmentIndication_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSRABEstablishmentIndication_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSRABEstablishmentIndication_ies_tags_2)
+		/sizeof(asn_DEF_mBMSRABEstablishmentIndication_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSRABEstablishmentIndication_ies_constr_2,
+	asn_MBR_mBMSRABEstablishmentIndication_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSRABEstablishmentIndication_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSRABEstablishmentIndication_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSRABEstablishmentIndication, mBMSRABEstablishmentIndication_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSRABEstablishmentIndication_ies_2,
+		memb_mBMSRABEstablishmentIndication_ies_constraint_1,
+		&asn_PER_memb_mBMSRABEstablishmentIndication_ies_constr_2,
+		0,
+		"mBMSRABEstablishmentIndication-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSRABEstablishmentIndication_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSRABEstablishmentIndication_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSRABEstablishmentIndication-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSRABEstablishmentIndication_specs_1 = {
+	sizeof(struct RANAP_MBMSRABEstablishmentIndication),
+	offsetof(struct RANAP_MBMSRABEstablishmentIndication, _asn_ctx),
+	asn_MAP_RANAP_MBMSRABEstablishmentIndication_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSRABEstablishmentIndication = {
+	"RANAP_MBMSRABEstablishmentIndication",
+	"RANAP_MBMSRABEstablishmentIndication",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSRABEstablishmentIndication_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSRABEstablishmentIndication_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSRABEstablishmentIndication_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSRABEstablishmentIndication_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSRABEstablishmentIndication_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSRABEstablishmentIndication_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSRABEstablishmentIndication_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSRABEstablishmentIndication_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSRABEstablishmentIndication.h b/src/ranap/RANAP_MBMSRABEstablishmentIndication.h
new file mode 100644
index 0000000..88972eb
--- /dev/null
+++ b/src/ranap/RANAP_MBMSRABEstablishmentIndication.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSRABEstablishmentIndication_H_
+#define	_RANAP_MBMSRABEstablishmentIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSRABEstablishmentIndication */
+typedef struct RANAP_MBMSRABEstablishmentIndication {
+	struct mBMSRABEstablishmentIndication_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSRABEstablishmentIndication_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSRABEstablishmentIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSRABEstablishmentIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSRABEstablishmentIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSRABRelease.c b/src/ranap/RANAP_MBMSRABRelease.c
new file mode 100644
index 0000000..8f29f6d
--- /dev/null
+++ b/src/ranap/RANAP_MBMSRABRelease.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSRABRelease.h"
+
+static int
+memb_mBMSRABRelease_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSRABRelease_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSRABRelease_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSRABRelease_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSRABRelease_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSRABRelease_ies_specs_2 = {
+	sizeof(struct mBMSRABRelease_ies),
+	offsetof(struct mBMSRABRelease_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSRABRelease_ies_2 = {
+	"mBMSRABRelease-ies",
+	"mBMSRABRelease-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSRABRelease_ies_tags_2,
+	sizeof(asn_DEF_mBMSRABRelease_ies_tags_2)
+		/sizeof(asn_DEF_mBMSRABRelease_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSRABRelease_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSRABRelease_ies_tags_2)
+		/sizeof(asn_DEF_mBMSRABRelease_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSRABRelease_ies_constr_2,
+	asn_MBR_mBMSRABRelease_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSRABRelease_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSRABRelease_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSRABRelease, mBMSRABRelease_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSRABRelease_ies_2,
+		memb_mBMSRABRelease_ies_constraint_1,
+		&asn_PER_memb_mBMSRABRelease_ies_constr_2,
+		0,
+		"mBMSRABRelease-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSRABRelease_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSRABRelease_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSRABRelease-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSRABRelease_specs_1 = {
+	sizeof(struct RANAP_MBMSRABRelease),
+	offsetof(struct RANAP_MBMSRABRelease, _asn_ctx),
+	asn_MAP_RANAP_MBMSRABRelease_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSRABRelease = {
+	"RANAP_MBMSRABRelease",
+	"RANAP_MBMSRABRelease",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSRABRelease_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSRABRelease_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSRABRelease_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSRABRelease_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSRABRelease_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSRABRelease_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSRABRelease_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSRABRelease_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSRABRelease.h b/src/ranap/RANAP_MBMSRABRelease.h
new file mode 100644
index 0000000..db2b5e9
--- /dev/null
+++ b/src/ranap/RANAP_MBMSRABRelease.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSRABRelease_H_
+#define	_RANAP_MBMSRABRelease_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSRABRelease */
+typedef struct RANAP_MBMSRABRelease {
+	struct mBMSRABRelease_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSRABRelease_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSRABRelease_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSRABRelease;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSRABRelease_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSRABReleaseFailure.c b/src/ranap/RANAP_MBMSRABReleaseFailure.c
new file mode 100644
index 0000000..e6c73f3
--- /dev/null
+++ b/src/ranap/RANAP_MBMSRABReleaseFailure.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSRABReleaseFailure.h"
+
+static int
+memb_mBMSRABReleaseFailure_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSRABReleaseFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSRABReleaseFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSRABReleaseFailure_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSRABReleaseFailure_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSRABReleaseFailure_ies_specs_2 = {
+	sizeof(struct mBMSRABReleaseFailure_ies),
+	offsetof(struct mBMSRABReleaseFailure_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSRABReleaseFailure_ies_2 = {
+	"mBMSRABReleaseFailure-ies",
+	"mBMSRABReleaseFailure-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSRABReleaseFailure_ies_tags_2,
+	sizeof(asn_DEF_mBMSRABReleaseFailure_ies_tags_2)
+		/sizeof(asn_DEF_mBMSRABReleaseFailure_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSRABReleaseFailure_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSRABReleaseFailure_ies_tags_2)
+		/sizeof(asn_DEF_mBMSRABReleaseFailure_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSRABReleaseFailure_ies_constr_2,
+	asn_MBR_mBMSRABReleaseFailure_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSRABReleaseFailure_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSRABReleaseFailure_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSRABReleaseFailure, mBMSRABReleaseFailure_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSRABReleaseFailure_ies_2,
+		memb_mBMSRABReleaseFailure_ies_constraint_1,
+		&asn_PER_memb_mBMSRABReleaseFailure_ies_constr_2,
+		0,
+		"mBMSRABReleaseFailure-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSRABReleaseFailure_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSRABReleaseFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSRABReleaseFailure-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSRABReleaseFailure_specs_1 = {
+	sizeof(struct RANAP_MBMSRABReleaseFailure),
+	offsetof(struct RANAP_MBMSRABReleaseFailure, _asn_ctx),
+	asn_MAP_RANAP_MBMSRABReleaseFailure_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSRABReleaseFailure = {
+	"RANAP_MBMSRABReleaseFailure",
+	"RANAP_MBMSRABReleaseFailure",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSRABReleaseFailure_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSRABReleaseFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSRABReleaseFailure_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSRABReleaseFailure_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSRABReleaseFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSRABReleaseFailure_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSRABReleaseFailure_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSRABReleaseFailure_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSRABReleaseFailure.h b/src/ranap/RANAP_MBMSRABReleaseFailure.h
new file mode 100644
index 0000000..b3ec38b
--- /dev/null
+++ b/src/ranap/RANAP_MBMSRABReleaseFailure.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSRABReleaseFailure_H_
+#define	_RANAP_MBMSRABReleaseFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSRABReleaseFailure */
+typedef struct RANAP_MBMSRABReleaseFailure {
+	struct mBMSRABReleaseFailure_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSRABReleaseFailure_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSRABReleaseFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSRABReleaseFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSRABReleaseFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSRABReleaseRequest.c b/src/ranap/RANAP_MBMSRABReleaseRequest.c
new file mode 100644
index 0000000..0de4127
--- /dev/null
+++ b/src/ranap/RANAP_MBMSRABReleaseRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSRABReleaseRequest.h"
+
+static int
+memb_mBMSRABReleaseRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSRABReleaseRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSRABReleaseRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSRABReleaseRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSRABReleaseRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSRABReleaseRequest_ies_specs_2 = {
+	sizeof(struct mBMSRABReleaseRequest_ies),
+	offsetof(struct mBMSRABReleaseRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSRABReleaseRequest_ies_2 = {
+	"mBMSRABReleaseRequest-ies",
+	"mBMSRABReleaseRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSRABReleaseRequest_ies_tags_2,
+	sizeof(asn_DEF_mBMSRABReleaseRequest_ies_tags_2)
+		/sizeof(asn_DEF_mBMSRABReleaseRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSRABReleaseRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSRABReleaseRequest_ies_tags_2)
+		/sizeof(asn_DEF_mBMSRABReleaseRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSRABReleaseRequest_ies_constr_2,
+	asn_MBR_mBMSRABReleaseRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSRABReleaseRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSRABReleaseRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSRABReleaseRequest, mBMSRABReleaseRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSRABReleaseRequest_ies_2,
+		memb_mBMSRABReleaseRequest_ies_constraint_1,
+		&asn_PER_memb_mBMSRABReleaseRequest_ies_constr_2,
+		0,
+		"mBMSRABReleaseRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSRABReleaseRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSRABReleaseRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSRABReleaseRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSRABReleaseRequest_specs_1 = {
+	sizeof(struct RANAP_MBMSRABReleaseRequest),
+	offsetof(struct RANAP_MBMSRABReleaseRequest, _asn_ctx),
+	asn_MAP_RANAP_MBMSRABReleaseRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSRABReleaseRequest = {
+	"RANAP_MBMSRABReleaseRequest",
+	"RANAP_MBMSRABReleaseRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSRABReleaseRequest_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSRABReleaseRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSRABReleaseRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSRABReleaseRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSRABReleaseRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSRABReleaseRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSRABReleaseRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSRABReleaseRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSRABReleaseRequest.h b/src/ranap/RANAP_MBMSRABReleaseRequest.h
new file mode 100644
index 0000000..6f9d34a
--- /dev/null
+++ b/src/ranap/RANAP_MBMSRABReleaseRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSRABReleaseRequest_H_
+#define	_RANAP_MBMSRABReleaseRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSRABReleaseRequest */
+typedef struct RANAP_MBMSRABReleaseRequest {
+	struct mBMSRABReleaseRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSRABReleaseRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSRABReleaseRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSRABReleaseRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSRABReleaseRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSRegistrationFailure.c b/src/ranap/RANAP_MBMSRegistrationFailure.c
new file mode 100644
index 0000000..f6a7301
--- /dev/null
+++ b/src/ranap/RANAP_MBMSRegistrationFailure.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSRegistrationFailure.h"
+
+static int
+memb_mBMSRegistrationFailure_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSRegistrationFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSRegistrationFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSRegistrationFailure_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSRegistrationFailure_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSRegistrationFailure_ies_specs_2 = {
+	sizeof(struct mBMSRegistrationFailure_ies),
+	offsetof(struct mBMSRegistrationFailure_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSRegistrationFailure_ies_2 = {
+	"mBMSRegistrationFailure-ies",
+	"mBMSRegistrationFailure-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSRegistrationFailure_ies_tags_2,
+	sizeof(asn_DEF_mBMSRegistrationFailure_ies_tags_2)
+		/sizeof(asn_DEF_mBMSRegistrationFailure_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSRegistrationFailure_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSRegistrationFailure_ies_tags_2)
+		/sizeof(asn_DEF_mBMSRegistrationFailure_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSRegistrationFailure_ies_constr_2,
+	asn_MBR_mBMSRegistrationFailure_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSRegistrationFailure_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSRegistrationFailure_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSRegistrationFailure, mBMSRegistrationFailure_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSRegistrationFailure_ies_2,
+		memb_mBMSRegistrationFailure_ies_constraint_1,
+		&asn_PER_memb_mBMSRegistrationFailure_ies_constr_2,
+		0,
+		"mBMSRegistrationFailure-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSRegistrationFailure_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSRegistrationFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSRegistrationFailure-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSRegistrationFailure_specs_1 = {
+	sizeof(struct RANAP_MBMSRegistrationFailure),
+	offsetof(struct RANAP_MBMSRegistrationFailure, _asn_ctx),
+	asn_MAP_RANAP_MBMSRegistrationFailure_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSRegistrationFailure = {
+	"RANAP_MBMSRegistrationFailure",
+	"RANAP_MBMSRegistrationFailure",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSRegistrationFailure_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSRegistrationFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSRegistrationFailure_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSRegistrationFailure_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSRegistrationFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSRegistrationFailure_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSRegistrationFailure_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSRegistrationFailure_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSRegistrationFailure.h b/src/ranap/RANAP_MBMSRegistrationFailure.h
new file mode 100644
index 0000000..2d673fc
--- /dev/null
+++ b/src/ranap/RANAP_MBMSRegistrationFailure.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSRegistrationFailure_H_
+#define	_RANAP_MBMSRegistrationFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSRegistrationFailure */
+typedef struct RANAP_MBMSRegistrationFailure {
+	struct mBMSRegistrationFailure_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSRegistrationFailure_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSRegistrationFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSRegistrationFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSRegistrationFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSRegistrationRequest.c b/src/ranap/RANAP_MBMSRegistrationRequest.c
new file mode 100644
index 0000000..d70890a
--- /dev/null
+++ b/src/ranap/RANAP_MBMSRegistrationRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSRegistrationRequest.h"
+
+static int
+memb_mBMSRegistrationRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSRegistrationRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSRegistrationRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSRegistrationRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSRegistrationRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSRegistrationRequest_ies_specs_2 = {
+	sizeof(struct mBMSRegistrationRequest_ies),
+	offsetof(struct mBMSRegistrationRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSRegistrationRequest_ies_2 = {
+	"mBMSRegistrationRequest-ies",
+	"mBMSRegistrationRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSRegistrationRequest_ies_tags_2,
+	sizeof(asn_DEF_mBMSRegistrationRequest_ies_tags_2)
+		/sizeof(asn_DEF_mBMSRegistrationRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSRegistrationRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSRegistrationRequest_ies_tags_2)
+		/sizeof(asn_DEF_mBMSRegistrationRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSRegistrationRequest_ies_constr_2,
+	asn_MBR_mBMSRegistrationRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSRegistrationRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSRegistrationRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSRegistrationRequest, mBMSRegistrationRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSRegistrationRequest_ies_2,
+		memb_mBMSRegistrationRequest_ies_constraint_1,
+		&asn_PER_memb_mBMSRegistrationRequest_ies_constr_2,
+		0,
+		"mBMSRegistrationRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSRegistrationRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSRegistrationRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSRegistrationRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSRegistrationRequest_specs_1 = {
+	sizeof(struct RANAP_MBMSRegistrationRequest),
+	offsetof(struct RANAP_MBMSRegistrationRequest, _asn_ctx),
+	asn_MAP_RANAP_MBMSRegistrationRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSRegistrationRequest = {
+	"RANAP_MBMSRegistrationRequest",
+	"RANAP_MBMSRegistrationRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSRegistrationRequest_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSRegistrationRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSRegistrationRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSRegistrationRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSRegistrationRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSRegistrationRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSRegistrationRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSRegistrationRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSRegistrationRequest.h b/src/ranap/RANAP_MBMSRegistrationRequest.h
new file mode 100644
index 0000000..5138504
--- /dev/null
+++ b/src/ranap/RANAP_MBMSRegistrationRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSRegistrationRequest_H_
+#define	_RANAP_MBMSRegistrationRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSRegistrationRequest */
+typedef struct RANAP_MBMSRegistrationRequest {
+	struct mBMSRegistrationRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSRegistrationRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSRegistrationRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSRegistrationRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSRegistrationRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSRegistrationRequestType.c b/src/ranap/RANAP_MBMSRegistrationRequestType.c
new file mode 100644
index 0000000..ab1d933
--- /dev/null
+++ b/src/ranap/RANAP_MBMSRegistrationRequestType.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MBMSRegistrationRequestType.h"
+
+int
+RANAP_MBMSRegistrationRequestType_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MBMSRegistrationRequestType_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_MBMSRegistrationRequestType_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MBMSRegistrationRequestType_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MBMSRegistrationRequestType_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSRegistrationRequestType_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSRegistrationRequestType_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MBMSRegistrationRequestType_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MBMSRegistrationRequestType_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSRegistrationRequestType_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSRegistrationRequestType_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MBMSRegistrationRequestType_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MBMSRegistrationRequestType_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSRegistrationRequestType_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSRegistrationRequestType_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSRegistrationRequestType_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MBMSRegistrationRequestType_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSRegistrationRequestType_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MBMSRegistrationRequestType_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSRegistrationRequestType_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MBMSRegistrationRequestType_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSRegistrationRequestType_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MBMSRegistrationRequestType_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_MBMSRegistrationRequestType_value2enum_1[] = {
+	{ 0,	8,	"register" },
+	{ 1,	10,	"deregister" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_MBMSRegistrationRequestType_enum2value_1[] = {
+	1,	/* deregister(1) */
+	0	/* register(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_MBMSRegistrationRequestType_specs_1 = {
+	asn_MAP_RANAP_MBMSRegistrationRequestType_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_MBMSRegistrationRequestType_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSRegistrationRequestType_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSRegistrationRequestType = {
+	"RANAP_MBMSRegistrationRequestType",
+	"RANAP_MBMSRegistrationRequestType",
+	RANAP_MBMSRegistrationRequestType_free,
+	RANAP_MBMSRegistrationRequestType_print,
+	RANAP_MBMSRegistrationRequestType_constraint,
+	RANAP_MBMSRegistrationRequestType_decode_ber,
+	RANAP_MBMSRegistrationRequestType_encode_der,
+	RANAP_MBMSRegistrationRequestType_decode_xer,
+	RANAP_MBMSRegistrationRequestType_encode_xer,
+	RANAP_MBMSRegistrationRequestType_decode_uper,
+	RANAP_MBMSRegistrationRequestType_encode_uper,
+	RANAP_MBMSRegistrationRequestType_decode_aper,
+	RANAP_MBMSRegistrationRequestType_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSRegistrationRequestType_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSRegistrationRequestType_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSRegistrationRequestType_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSRegistrationRequestType_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSRegistrationRequestType_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSRegistrationRequestType_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MBMSRegistrationRequestType_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_MBMSRegistrationRequestType_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSRegistrationRequestType.h b/src/ranap/RANAP_MBMSRegistrationRequestType.h
new file mode 100644
index 0000000..720b6a6
--- /dev/null
+++ b/src/ranap/RANAP_MBMSRegistrationRequestType.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MBMSRegistrationRequestType_H_
+#define	_RANAP_MBMSRegistrationRequestType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_MBMSRegistrationRequestType {
+	RANAP_MBMSRegistrationRequestType_register	= 0,
+	RANAP_MBMSRegistrationRequestType_deregister	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_MBMSRegistrationRequestType;
+
+/* RANAP_MBMSRegistrationRequestType */
+typedef long	 RANAP_MBMSRegistrationRequestType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSRegistrationRequestType;
+asn_struct_free_f RANAP_MBMSRegistrationRequestType_free;
+asn_struct_print_f RANAP_MBMSRegistrationRequestType_print;
+asn_constr_check_f RANAP_MBMSRegistrationRequestType_constraint;
+ber_type_decoder_f RANAP_MBMSRegistrationRequestType_decode_ber;
+der_type_encoder_f RANAP_MBMSRegistrationRequestType_encode_der;
+xer_type_decoder_f RANAP_MBMSRegistrationRequestType_decode_xer;
+xer_type_encoder_f RANAP_MBMSRegistrationRequestType_encode_xer;
+per_type_decoder_f RANAP_MBMSRegistrationRequestType_decode_uper;
+per_type_encoder_f RANAP_MBMSRegistrationRequestType_encode_uper;
+per_type_decoder_f RANAP_MBMSRegistrationRequestType_decode_aper;
+per_type_encoder_f RANAP_MBMSRegistrationRequestType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSRegistrationRequestType_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSRegistrationResponse.c b/src/ranap/RANAP_MBMSRegistrationResponse.c
new file mode 100644
index 0000000..72ead77
--- /dev/null
+++ b/src/ranap/RANAP_MBMSRegistrationResponse.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSRegistrationResponse.h"
+
+static int
+memb_mBMSRegistrationResponse_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSRegistrationResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSRegistrationResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSRegistrationResponse_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSRegistrationResponse_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSRegistrationResponse_ies_specs_2 = {
+	sizeof(struct mBMSRegistrationResponse_ies),
+	offsetof(struct mBMSRegistrationResponse_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSRegistrationResponse_ies_2 = {
+	"mBMSRegistrationResponse-ies",
+	"mBMSRegistrationResponse-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSRegistrationResponse_ies_tags_2,
+	sizeof(asn_DEF_mBMSRegistrationResponse_ies_tags_2)
+		/sizeof(asn_DEF_mBMSRegistrationResponse_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSRegistrationResponse_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSRegistrationResponse_ies_tags_2)
+		/sizeof(asn_DEF_mBMSRegistrationResponse_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSRegistrationResponse_ies_constr_2,
+	asn_MBR_mBMSRegistrationResponse_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSRegistrationResponse_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSRegistrationResponse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSRegistrationResponse, mBMSRegistrationResponse_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSRegistrationResponse_ies_2,
+		memb_mBMSRegistrationResponse_ies_constraint_1,
+		&asn_PER_memb_mBMSRegistrationResponse_ies_constr_2,
+		0,
+		"mBMSRegistrationResponse-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSRegistrationResponse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSRegistrationResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSRegistrationResponse-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSRegistrationResponse_specs_1 = {
+	sizeof(struct RANAP_MBMSRegistrationResponse),
+	offsetof(struct RANAP_MBMSRegistrationResponse, _asn_ctx),
+	asn_MAP_RANAP_MBMSRegistrationResponse_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSRegistrationResponse = {
+	"RANAP_MBMSRegistrationResponse",
+	"RANAP_MBMSRegistrationResponse",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSRegistrationResponse_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSRegistrationResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSRegistrationResponse_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSRegistrationResponse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSRegistrationResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSRegistrationResponse_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSRegistrationResponse_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSRegistrationResponse_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSRegistrationResponse.h b/src/ranap/RANAP_MBMSRegistrationResponse.h
new file mode 100644
index 0000000..e83af69
--- /dev/null
+++ b/src/ranap/RANAP_MBMSRegistrationResponse.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSRegistrationResponse_H_
+#define	_RANAP_MBMSRegistrationResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSRegistrationResponse */
+typedef struct RANAP_MBMSRegistrationResponse {
+	struct mBMSRegistrationResponse_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSRegistrationResponse_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSRegistrationResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSRegistrationResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSRegistrationResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSServiceArea.c b/src/ranap/RANAP_MBMSServiceArea.c
new file mode 100644
index 0000000..b103e9f
--- /dev/null
+++ b/src/ranap/RANAP_MBMSServiceArea.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MBMSServiceArea.h"
+
+int
+RANAP_MBMSServiceArea_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MBMSServiceArea_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_MBMSServiceArea_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MBMSServiceArea_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MBMSServiceArea_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSServiceArea_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSServiceArea_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MBMSServiceArea_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MBMSServiceArea_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSServiceArea_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSServiceArea_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MBMSServiceArea_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MBMSServiceArea_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSServiceArea_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSServiceArea_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSServiceArea_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MBMSServiceArea_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSServiceArea_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MBMSServiceArea_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSServiceArea_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MBMSServiceArea_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSServiceArea_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSServiceArea_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSServiceArea = {
+	"RANAP_MBMSServiceArea",
+	"RANAP_MBMSServiceArea",
+	RANAP_MBMSServiceArea_free,
+	RANAP_MBMSServiceArea_print,
+	RANAP_MBMSServiceArea_constraint,
+	RANAP_MBMSServiceArea_decode_ber,
+	RANAP_MBMSServiceArea_encode_der,
+	RANAP_MBMSServiceArea_decode_xer,
+	RANAP_MBMSServiceArea_encode_xer,
+	RANAP_MBMSServiceArea_decode_uper,
+	RANAP_MBMSServiceArea_encode_uper,
+	RANAP_MBMSServiceArea_decode_aper,
+	RANAP_MBMSServiceArea_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSServiceArea_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSServiceArea_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSServiceArea_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSServiceArea_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSServiceArea_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSServiceArea_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_MBMSServiceArea.h b/src/ranap/RANAP_MBMSServiceArea.h
new file mode 100644
index 0000000..fe0b524
--- /dev/null
+++ b/src/ranap/RANAP_MBMSServiceArea.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MBMSServiceArea_H_
+#define	_RANAP_MBMSServiceArea_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSServiceArea */
+typedef OCTET_STRING_t	 RANAP_MBMSServiceArea_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSServiceArea;
+asn_struct_free_f RANAP_MBMSServiceArea_free;
+asn_struct_print_f RANAP_MBMSServiceArea_print;
+asn_constr_check_f RANAP_MBMSServiceArea_constraint;
+ber_type_decoder_f RANAP_MBMSServiceArea_decode_ber;
+der_type_encoder_f RANAP_MBMSServiceArea_encode_der;
+xer_type_decoder_f RANAP_MBMSServiceArea_decode_xer;
+xer_type_encoder_f RANAP_MBMSServiceArea_encode_xer;
+per_type_decoder_f RANAP_MBMSServiceArea_decode_uper;
+per_type_encoder_f RANAP_MBMSServiceArea_encode_uper;
+per_type_decoder_f RANAP_MBMSServiceArea_decode_aper;
+per_type_encoder_f RANAP_MBMSServiceArea_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSServiceArea_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSSessionDuration.c b/src/ranap/RANAP_MBMSSessionDuration.c
new file mode 100644
index 0000000..e072258
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionDuration.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MBMSSessionDuration.h"
+
+int
+RANAP_MBMSSessionDuration_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 3l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MBMSSessionDuration_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_MBMSSessionDuration_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MBMSSessionDuration_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MBMSSessionDuration_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSSessionDuration_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSSessionDuration_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MBMSSessionDuration_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MBMSSessionDuration_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSSessionDuration_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSSessionDuration_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MBMSSessionDuration_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MBMSSessionDuration_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSSessionDuration_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSSessionDuration_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSSessionDuration_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MBMSSessionDuration_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSSessionDuration_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MBMSSessionDuration_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSSessionDuration_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MBMSSessionDuration_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSSessionDuration_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MBMSSessionDuration_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  3l,  3l }	/* (SIZE(3..3)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSSessionDuration_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionDuration = {
+	"RANAP_MBMSSessionDuration",
+	"RANAP_MBMSSessionDuration",
+	RANAP_MBMSSessionDuration_free,
+	RANAP_MBMSSessionDuration_print,
+	RANAP_MBMSSessionDuration_constraint,
+	RANAP_MBMSSessionDuration_decode_ber,
+	RANAP_MBMSSessionDuration_encode_der,
+	RANAP_MBMSSessionDuration_decode_xer,
+	RANAP_MBMSSessionDuration_encode_xer,
+	RANAP_MBMSSessionDuration_decode_uper,
+	RANAP_MBMSSessionDuration_encode_uper,
+	RANAP_MBMSSessionDuration_decode_aper,
+	RANAP_MBMSSessionDuration_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSSessionDuration_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSSessionDuration_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionDuration_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSSessionDuration_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSSessionDuration_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionDuration_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MBMSSessionDuration_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_MBMSSessionDuration.h b/src/ranap/RANAP_MBMSSessionDuration.h
new file mode 100644
index 0000000..208da5f
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionDuration.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MBMSSessionDuration_H_
+#define	_RANAP_MBMSSessionDuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSSessionDuration */
+typedef OCTET_STRING_t	 RANAP_MBMSSessionDuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionDuration;
+asn_struct_free_f RANAP_MBMSSessionDuration_free;
+asn_struct_print_f RANAP_MBMSSessionDuration_print;
+asn_constr_check_f RANAP_MBMSSessionDuration_constraint;
+ber_type_decoder_f RANAP_MBMSSessionDuration_decode_ber;
+der_type_encoder_f RANAP_MBMSSessionDuration_encode_der;
+xer_type_decoder_f RANAP_MBMSSessionDuration_decode_xer;
+xer_type_encoder_f RANAP_MBMSSessionDuration_encode_xer;
+per_type_decoder_f RANAP_MBMSSessionDuration_decode_uper;
+per_type_encoder_f RANAP_MBMSSessionDuration_encode_uper;
+per_type_decoder_f RANAP_MBMSSessionDuration_decode_aper;
+per_type_encoder_f RANAP_MBMSSessionDuration_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSSessionDuration_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSSessionIdentity.c b/src/ranap/RANAP_MBMSSessionIdentity.c
new file mode 100644
index 0000000..e71c3b2
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionIdentity.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MBMSSessionIdentity.h"
+
+int
+RANAP_MBMSSessionIdentity_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 1l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MBMSSessionIdentity_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_MBMSSessionIdentity_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MBMSSessionIdentity_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MBMSSessionIdentity_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSSessionIdentity_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSSessionIdentity_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MBMSSessionIdentity_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MBMSSessionIdentity_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSSessionIdentity_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSSessionIdentity_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MBMSSessionIdentity_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MBMSSessionIdentity_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSSessionIdentity_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSSessionIdentity_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSSessionIdentity_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MBMSSessionIdentity_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSSessionIdentity_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MBMSSessionIdentity_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSSessionIdentity_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MBMSSessionIdentity_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSSessionIdentity_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MBMSSessionIdentity_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  1l,  1l }	/* (SIZE(1..1)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSSessionIdentity_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionIdentity = {
+	"RANAP_MBMSSessionIdentity",
+	"RANAP_MBMSSessionIdentity",
+	RANAP_MBMSSessionIdentity_free,
+	RANAP_MBMSSessionIdentity_print,
+	RANAP_MBMSSessionIdentity_constraint,
+	RANAP_MBMSSessionIdentity_decode_ber,
+	RANAP_MBMSSessionIdentity_encode_der,
+	RANAP_MBMSSessionIdentity_decode_xer,
+	RANAP_MBMSSessionIdentity_encode_xer,
+	RANAP_MBMSSessionIdentity_decode_uper,
+	RANAP_MBMSSessionIdentity_encode_uper,
+	RANAP_MBMSSessionIdentity_decode_aper,
+	RANAP_MBMSSessionIdentity_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSSessionIdentity_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSSessionIdentity_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionIdentity_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSSessionIdentity_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSSessionIdentity_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionIdentity_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MBMSSessionIdentity_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_MBMSSessionIdentity.h b/src/ranap/RANAP_MBMSSessionIdentity.h
new file mode 100644
index 0000000..f9d7892
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionIdentity.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MBMSSessionIdentity_H_
+#define	_RANAP_MBMSSessionIdentity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSSessionIdentity */
+typedef OCTET_STRING_t	 RANAP_MBMSSessionIdentity_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionIdentity;
+asn_struct_free_f RANAP_MBMSSessionIdentity_free;
+asn_struct_print_f RANAP_MBMSSessionIdentity_print;
+asn_constr_check_f RANAP_MBMSSessionIdentity_constraint;
+ber_type_decoder_f RANAP_MBMSSessionIdentity_decode_ber;
+der_type_encoder_f RANAP_MBMSSessionIdentity_encode_der;
+xer_type_decoder_f RANAP_MBMSSessionIdentity_decode_xer;
+xer_type_encoder_f RANAP_MBMSSessionIdentity_encode_xer;
+per_type_decoder_f RANAP_MBMSSessionIdentity_decode_uper;
+per_type_encoder_f RANAP_MBMSSessionIdentity_encode_uper;
+per_type_decoder_f RANAP_MBMSSessionIdentity_decode_aper;
+per_type_encoder_f RANAP_MBMSSessionIdentity_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSSessionIdentity_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSSessionRepetitionNumber.c b/src/ranap/RANAP_MBMSSessionRepetitionNumber.c
new file mode 100644
index 0000000..76a372b
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionRepetitionNumber.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MBMSSessionRepetitionNumber.h"
+
+int
+RANAP_MBMSSessionRepetitionNumber_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 1l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MBMSSessionRepetitionNumber_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_MBMSSessionRepetitionNumber_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MBMSSessionRepetitionNumber_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MBMSSessionRepetitionNumber_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSSessionRepetitionNumber_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSSessionRepetitionNumber_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MBMSSessionRepetitionNumber_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MBMSSessionRepetitionNumber_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSSessionRepetitionNumber_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSSessionRepetitionNumber_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MBMSSessionRepetitionNumber_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MBMSSessionRepetitionNumber_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MBMSSessionRepetitionNumber_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MBMSSessionRepetitionNumber_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSSessionRepetitionNumber_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MBMSSessionRepetitionNumber_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSSessionRepetitionNumber_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MBMSSessionRepetitionNumber_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MBMSSessionRepetitionNumber_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MBMSSessionRepetitionNumber_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MBMSSessionRepetitionNumber_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MBMSSessionRepetitionNumber_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  1l,  1l }	/* (SIZE(1..1)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSSessionRepetitionNumber_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionRepetitionNumber = {
+	"RANAP_MBMSSessionRepetitionNumber",
+	"RANAP_MBMSSessionRepetitionNumber",
+	RANAP_MBMSSessionRepetitionNumber_free,
+	RANAP_MBMSSessionRepetitionNumber_print,
+	RANAP_MBMSSessionRepetitionNumber_constraint,
+	RANAP_MBMSSessionRepetitionNumber_decode_ber,
+	RANAP_MBMSSessionRepetitionNumber_encode_der,
+	RANAP_MBMSSessionRepetitionNumber_decode_xer,
+	RANAP_MBMSSessionRepetitionNumber_encode_xer,
+	RANAP_MBMSSessionRepetitionNumber_decode_uper,
+	RANAP_MBMSSessionRepetitionNumber_encode_uper,
+	RANAP_MBMSSessionRepetitionNumber_decode_aper,
+	RANAP_MBMSSessionRepetitionNumber_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSSessionRepetitionNumber_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSSessionRepetitionNumber_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionRepetitionNumber_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSSessionRepetitionNumber_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSSessionRepetitionNumber_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionRepetitionNumber_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MBMSSessionRepetitionNumber_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_MBMSSessionRepetitionNumber.h b/src/ranap/RANAP_MBMSSessionRepetitionNumber.h
new file mode 100644
index 0000000..980c186
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionRepetitionNumber.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MBMSSessionRepetitionNumber_H_
+#define	_RANAP_MBMSSessionRepetitionNumber_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSSessionRepetitionNumber */
+typedef OCTET_STRING_t	 RANAP_MBMSSessionRepetitionNumber_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionRepetitionNumber;
+asn_struct_free_f RANAP_MBMSSessionRepetitionNumber_free;
+asn_struct_print_f RANAP_MBMSSessionRepetitionNumber_print;
+asn_constr_check_f RANAP_MBMSSessionRepetitionNumber_constraint;
+ber_type_decoder_f RANAP_MBMSSessionRepetitionNumber_decode_ber;
+der_type_encoder_f RANAP_MBMSSessionRepetitionNumber_encode_der;
+xer_type_decoder_f RANAP_MBMSSessionRepetitionNumber_decode_xer;
+xer_type_encoder_f RANAP_MBMSSessionRepetitionNumber_encode_xer;
+per_type_decoder_f RANAP_MBMSSessionRepetitionNumber_decode_uper;
+per_type_encoder_f RANAP_MBMSSessionRepetitionNumber_encode_uper;
+per_type_decoder_f RANAP_MBMSSessionRepetitionNumber_decode_aper;
+per_type_encoder_f RANAP_MBMSSessionRepetitionNumber_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSSessionRepetitionNumber_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSSessionStart.c b/src/ranap/RANAP_MBMSSessionStart.c
new file mode 100644
index 0000000..507e9a4
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionStart.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSSessionStart.h"
+
+static int
+memb_mBMSSessionStart_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSSessionStart_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSSessionStart_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSSessionStart_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSSessionStart_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSSessionStart_ies_specs_2 = {
+	sizeof(struct mBMSSessionStart_ies),
+	offsetof(struct mBMSSessionStart_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSSessionStart_ies_2 = {
+	"mBMSSessionStart-ies",
+	"mBMSSessionStart-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSSessionStart_ies_tags_2,
+	sizeof(asn_DEF_mBMSSessionStart_ies_tags_2)
+		/sizeof(asn_DEF_mBMSSessionStart_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSSessionStart_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSSessionStart_ies_tags_2)
+		/sizeof(asn_DEF_mBMSSessionStart_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSSessionStart_ies_constr_2,
+	asn_MBR_mBMSSessionStart_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSSessionStart_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSSessionStart_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSSessionStart, mBMSSessionStart_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSSessionStart_ies_2,
+		memb_mBMSSessionStart_ies_constraint_1,
+		&asn_PER_memb_mBMSSessionStart_ies_constr_2,
+		0,
+		"mBMSSessionStart-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSSessionStart_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSSessionStart_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSSessionStart-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSSessionStart_specs_1 = {
+	sizeof(struct RANAP_MBMSSessionStart),
+	offsetof(struct RANAP_MBMSSessionStart, _asn_ctx),
+	asn_MAP_RANAP_MBMSSessionStart_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionStart = {
+	"RANAP_MBMSSessionStart",
+	"RANAP_MBMSSessionStart",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSSessionStart_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSSessionStart_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionStart_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSSessionStart_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSSessionStart_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionStart_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSSessionStart_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSSessionStart_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSSessionStart.h b/src/ranap/RANAP_MBMSSessionStart.h
new file mode 100644
index 0000000..4f3fa13
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionStart.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSSessionStart_H_
+#define	_RANAP_MBMSSessionStart_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSSessionStart */
+typedef struct RANAP_MBMSSessionStart {
+	struct mBMSSessionStart_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSSessionStart_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSSessionStart_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionStart;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSSessionStart_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSSessionStartFailure.c b/src/ranap/RANAP_MBMSSessionStartFailure.c
new file mode 100644
index 0000000..01f2af8
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionStartFailure.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSSessionStartFailure.h"
+
+static int
+memb_mBMSSessionStartFailure_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSSessionStartFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSSessionStartFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSSessionStartFailure_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSSessionStartFailure_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSSessionStartFailure_ies_specs_2 = {
+	sizeof(struct mBMSSessionStartFailure_ies),
+	offsetof(struct mBMSSessionStartFailure_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSSessionStartFailure_ies_2 = {
+	"mBMSSessionStartFailure-ies",
+	"mBMSSessionStartFailure-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSSessionStartFailure_ies_tags_2,
+	sizeof(asn_DEF_mBMSSessionStartFailure_ies_tags_2)
+		/sizeof(asn_DEF_mBMSSessionStartFailure_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSSessionStartFailure_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSSessionStartFailure_ies_tags_2)
+		/sizeof(asn_DEF_mBMSSessionStartFailure_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSSessionStartFailure_ies_constr_2,
+	asn_MBR_mBMSSessionStartFailure_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSSessionStartFailure_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSSessionStartFailure_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSSessionStartFailure, mBMSSessionStartFailure_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSSessionStartFailure_ies_2,
+		memb_mBMSSessionStartFailure_ies_constraint_1,
+		&asn_PER_memb_mBMSSessionStartFailure_ies_constr_2,
+		0,
+		"mBMSSessionStartFailure-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSSessionStartFailure_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSSessionStartFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSSessionStartFailure-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSSessionStartFailure_specs_1 = {
+	sizeof(struct RANAP_MBMSSessionStartFailure),
+	offsetof(struct RANAP_MBMSSessionStartFailure, _asn_ctx),
+	asn_MAP_RANAP_MBMSSessionStartFailure_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionStartFailure = {
+	"RANAP_MBMSSessionStartFailure",
+	"RANAP_MBMSSessionStartFailure",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSSessionStartFailure_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSSessionStartFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionStartFailure_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSSessionStartFailure_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSSessionStartFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionStartFailure_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSSessionStartFailure_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSSessionStartFailure_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSSessionStartFailure.h b/src/ranap/RANAP_MBMSSessionStartFailure.h
new file mode 100644
index 0000000..ba73d35
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionStartFailure.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSSessionStartFailure_H_
+#define	_RANAP_MBMSSessionStartFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSSessionStartFailure */
+typedef struct RANAP_MBMSSessionStartFailure {
+	struct mBMSSessionStartFailure_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSSessionStartFailure_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSSessionStartFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionStartFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSSessionStartFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSSessionStartResponse.c b/src/ranap/RANAP_MBMSSessionStartResponse.c
new file mode 100644
index 0000000..5fea9b4
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionStartResponse.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSSessionStartResponse.h"
+
+static int
+memb_mBMSSessionStartResponse_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSSessionStartResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSSessionStartResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSSessionStartResponse_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSSessionStartResponse_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSSessionStartResponse_ies_specs_2 = {
+	sizeof(struct mBMSSessionStartResponse_ies),
+	offsetof(struct mBMSSessionStartResponse_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSSessionStartResponse_ies_2 = {
+	"mBMSSessionStartResponse-ies",
+	"mBMSSessionStartResponse-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSSessionStartResponse_ies_tags_2,
+	sizeof(asn_DEF_mBMSSessionStartResponse_ies_tags_2)
+		/sizeof(asn_DEF_mBMSSessionStartResponse_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSSessionStartResponse_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSSessionStartResponse_ies_tags_2)
+		/sizeof(asn_DEF_mBMSSessionStartResponse_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSSessionStartResponse_ies_constr_2,
+	asn_MBR_mBMSSessionStartResponse_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSSessionStartResponse_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSSessionStartResponse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSSessionStartResponse, mBMSSessionStartResponse_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSSessionStartResponse_ies_2,
+		memb_mBMSSessionStartResponse_ies_constraint_1,
+		&asn_PER_memb_mBMSSessionStartResponse_ies_constr_2,
+		0,
+		"mBMSSessionStartResponse-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSSessionStartResponse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSSessionStartResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSSessionStartResponse-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSSessionStartResponse_specs_1 = {
+	sizeof(struct RANAP_MBMSSessionStartResponse),
+	offsetof(struct RANAP_MBMSSessionStartResponse, _asn_ctx),
+	asn_MAP_RANAP_MBMSSessionStartResponse_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionStartResponse = {
+	"RANAP_MBMSSessionStartResponse",
+	"RANAP_MBMSSessionStartResponse",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSSessionStartResponse_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSSessionStartResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionStartResponse_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSSessionStartResponse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSSessionStartResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionStartResponse_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSSessionStartResponse_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSSessionStartResponse_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSSessionStartResponse.h b/src/ranap/RANAP_MBMSSessionStartResponse.h
new file mode 100644
index 0000000..ebad774
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionStartResponse.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSSessionStartResponse_H_
+#define	_RANAP_MBMSSessionStartResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSSessionStartResponse */
+typedef struct RANAP_MBMSSessionStartResponse {
+	struct mBMSSessionStartResponse_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSSessionStartResponse_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSSessionStartResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionStartResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSSessionStartResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSSessionStop.c b/src/ranap/RANAP_MBMSSessionStop.c
new file mode 100644
index 0000000..1797bea
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionStop.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSSessionStop.h"
+
+static int
+memb_mBMSSessionStop_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSSessionStop_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSSessionStop_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSSessionStop_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSSessionStop_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSSessionStop_ies_specs_2 = {
+	sizeof(struct mBMSSessionStop_ies),
+	offsetof(struct mBMSSessionStop_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSSessionStop_ies_2 = {
+	"mBMSSessionStop-ies",
+	"mBMSSessionStop-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSSessionStop_ies_tags_2,
+	sizeof(asn_DEF_mBMSSessionStop_ies_tags_2)
+		/sizeof(asn_DEF_mBMSSessionStop_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSSessionStop_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSSessionStop_ies_tags_2)
+		/sizeof(asn_DEF_mBMSSessionStop_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSSessionStop_ies_constr_2,
+	asn_MBR_mBMSSessionStop_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSSessionStop_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSSessionStop_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSSessionStop, mBMSSessionStop_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSSessionStop_ies_2,
+		memb_mBMSSessionStop_ies_constraint_1,
+		&asn_PER_memb_mBMSSessionStop_ies_constr_2,
+		0,
+		"mBMSSessionStop-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSSessionStop_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSSessionStop_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSSessionStop-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSSessionStop_specs_1 = {
+	sizeof(struct RANAP_MBMSSessionStop),
+	offsetof(struct RANAP_MBMSSessionStop, _asn_ctx),
+	asn_MAP_RANAP_MBMSSessionStop_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionStop = {
+	"RANAP_MBMSSessionStop",
+	"RANAP_MBMSSessionStop",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSSessionStop_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSSessionStop_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionStop_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSSessionStop_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSSessionStop_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionStop_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSSessionStop_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSSessionStop_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSSessionStop.h b/src/ranap/RANAP_MBMSSessionStop.h
new file mode 100644
index 0000000..eb4cc1a
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionStop.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSSessionStop_H_
+#define	_RANAP_MBMSSessionStop_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSSessionStop */
+typedef struct RANAP_MBMSSessionStop {
+	struct mBMSSessionStop_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSSessionStop_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSSessionStop_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionStop;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSSessionStop_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSSessionStopResponse.c b/src/ranap/RANAP_MBMSSessionStopResponse.c
new file mode 100644
index 0000000..a1730f5
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionStopResponse.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSSessionStopResponse.h"
+
+static int
+memb_mBMSSessionStopResponse_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSSessionStopResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSSessionStopResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSSessionStopResponse_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSSessionStopResponse_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSSessionStopResponse_ies_specs_2 = {
+	sizeof(struct mBMSSessionStopResponse_ies),
+	offsetof(struct mBMSSessionStopResponse_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSSessionStopResponse_ies_2 = {
+	"mBMSSessionStopResponse-ies",
+	"mBMSSessionStopResponse-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSSessionStopResponse_ies_tags_2,
+	sizeof(asn_DEF_mBMSSessionStopResponse_ies_tags_2)
+		/sizeof(asn_DEF_mBMSSessionStopResponse_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSSessionStopResponse_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSSessionStopResponse_ies_tags_2)
+		/sizeof(asn_DEF_mBMSSessionStopResponse_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSSessionStopResponse_ies_constr_2,
+	asn_MBR_mBMSSessionStopResponse_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSSessionStopResponse_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSSessionStopResponse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSSessionStopResponse, mBMSSessionStopResponse_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSSessionStopResponse_ies_2,
+		memb_mBMSSessionStopResponse_ies_constraint_1,
+		&asn_PER_memb_mBMSSessionStopResponse_ies_constr_2,
+		0,
+		"mBMSSessionStopResponse-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSSessionStopResponse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSSessionStopResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSSessionStopResponse-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSSessionStopResponse_specs_1 = {
+	sizeof(struct RANAP_MBMSSessionStopResponse),
+	offsetof(struct RANAP_MBMSSessionStopResponse, _asn_ctx),
+	asn_MAP_RANAP_MBMSSessionStopResponse_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionStopResponse = {
+	"RANAP_MBMSSessionStopResponse",
+	"RANAP_MBMSSessionStopResponse",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSSessionStopResponse_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSSessionStopResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionStopResponse_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSSessionStopResponse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSSessionStopResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionStopResponse_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSSessionStopResponse_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSSessionStopResponse_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSSessionStopResponse.h b/src/ranap/RANAP_MBMSSessionStopResponse.h
new file mode 100644
index 0000000..1cfc02e
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionStopResponse.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSSessionStopResponse_H_
+#define	_RANAP_MBMSSessionStopResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSSessionStopResponse */
+typedef struct RANAP_MBMSSessionStopResponse {
+	struct mBMSSessionStopResponse_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSSessionStopResponse_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSSessionStopResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionStopResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSSessionStopResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSSessionUpdate.c b/src/ranap/RANAP_MBMSSessionUpdate.c
new file mode 100644
index 0000000..6d84b28
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionUpdate.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSSessionUpdate.h"
+
+static int
+memb_mBMSSessionUpdate_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSSessionUpdate_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSSessionUpdate_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSSessionUpdate_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSSessionUpdate_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSSessionUpdate_ies_specs_2 = {
+	sizeof(struct mBMSSessionUpdate_ies),
+	offsetof(struct mBMSSessionUpdate_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSSessionUpdate_ies_2 = {
+	"mBMSSessionUpdate-ies",
+	"mBMSSessionUpdate-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSSessionUpdate_ies_tags_2,
+	sizeof(asn_DEF_mBMSSessionUpdate_ies_tags_2)
+		/sizeof(asn_DEF_mBMSSessionUpdate_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSSessionUpdate_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSSessionUpdate_ies_tags_2)
+		/sizeof(asn_DEF_mBMSSessionUpdate_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSSessionUpdate_ies_constr_2,
+	asn_MBR_mBMSSessionUpdate_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSSessionUpdate_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSSessionUpdate_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSSessionUpdate, mBMSSessionUpdate_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSSessionUpdate_ies_2,
+		memb_mBMSSessionUpdate_ies_constraint_1,
+		&asn_PER_memb_mBMSSessionUpdate_ies_constr_2,
+		0,
+		"mBMSSessionUpdate-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSSessionUpdate_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSSessionUpdate_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSSessionUpdate-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSSessionUpdate_specs_1 = {
+	sizeof(struct RANAP_MBMSSessionUpdate),
+	offsetof(struct RANAP_MBMSSessionUpdate, _asn_ctx),
+	asn_MAP_RANAP_MBMSSessionUpdate_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionUpdate = {
+	"RANAP_MBMSSessionUpdate",
+	"RANAP_MBMSSessionUpdate",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSSessionUpdate_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSSessionUpdate_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionUpdate_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSSessionUpdate_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSSessionUpdate_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionUpdate_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSSessionUpdate_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSSessionUpdate_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSSessionUpdate.h b/src/ranap/RANAP_MBMSSessionUpdate.h
new file mode 100644
index 0000000..515544b
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionUpdate.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSSessionUpdate_H_
+#define	_RANAP_MBMSSessionUpdate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSSessionUpdate */
+typedef struct RANAP_MBMSSessionUpdate {
+	struct mBMSSessionUpdate_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSSessionUpdate_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSSessionUpdate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionUpdate;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSSessionUpdate_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSSessionUpdateFailure.c b/src/ranap/RANAP_MBMSSessionUpdateFailure.c
new file mode 100644
index 0000000..392de3a
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionUpdateFailure.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSSessionUpdateFailure.h"
+
+static int
+memb_mBMSSessionUpdateFailure_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSSessionUpdateFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSSessionUpdateFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSSessionUpdateFailure_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSSessionUpdateFailure_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSSessionUpdateFailure_ies_specs_2 = {
+	sizeof(struct mBMSSessionUpdateFailure_ies),
+	offsetof(struct mBMSSessionUpdateFailure_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSSessionUpdateFailure_ies_2 = {
+	"mBMSSessionUpdateFailure-ies",
+	"mBMSSessionUpdateFailure-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSSessionUpdateFailure_ies_tags_2,
+	sizeof(asn_DEF_mBMSSessionUpdateFailure_ies_tags_2)
+		/sizeof(asn_DEF_mBMSSessionUpdateFailure_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSSessionUpdateFailure_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSSessionUpdateFailure_ies_tags_2)
+		/sizeof(asn_DEF_mBMSSessionUpdateFailure_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSSessionUpdateFailure_ies_constr_2,
+	asn_MBR_mBMSSessionUpdateFailure_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSSessionUpdateFailure_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSSessionUpdateFailure_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSSessionUpdateFailure, mBMSSessionUpdateFailure_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSSessionUpdateFailure_ies_2,
+		memb_mBMSSessionUpdateFailure_ies_constraint_1,
+		&asn_PER_memb_mBMSSessionUpdateFailure_ies_constr_2,
+		0,
+		"mBMSSessionUpdateFailure-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSSessionUpdateFailure_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSSessionUpdateFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSSessionUpdateFailure-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSSessionUpdateFailure_specs_1 = {
+	sizeof(struct RANAP_MBMSSessionUpdateFailure),
+	offsetof(struct RANAP_MBMSSessionUpdateFailure, _asn_ctx),
+	asn_MAP_RANAP_MBMSSessionUpdateFailure_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionUpdateFailure = {
+	"RANAP_MBMSSessionUpdateFailure",
+	"RANAP_MBMSSessionUpdateFailure",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSSessionUpdateFailure_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSSessionUpdateFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionUpdateFailure_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSSessionUpdateFailure_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSSessionUpdateFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionUpdateFailure_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSSessionUpdateFailure_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSSessionUpdateFailure_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSSessionUpdateFailure.h b/src/ranap/RANAP_MBMSSessionUpdateFailure.h
new file mode 100644
index 0000000..2913926
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionUpdateFailure.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSSessionUpdateFailure_H_
+#define	_RANAP_MBMSSessionUpdateFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSSessionUpdateFailure */
+typedef struct RANAP_MBMSSessionUpdateFailure {
+	struct mBMSSessionUpdateFailure_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSSessionUpdateFailure_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSSessionUpdateFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionUpdateFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSSessionUpdateFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSSessionUpdateResponse.c b/src/ranap/RANAP_MBMSSessionUpdateResponse.c
new file mode 100644
index 0000000..5c30885
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionUpdateResponse.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSSessionUpdateResponse.h"
+
+static int
+memb_mBMSSessionUpdateResponse_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSSessionUpdateResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSSessionUpdateResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSSessionUpdateResponse_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSSessionUpdateResponse_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSSessionUpdateResponse_ies_specs_2 = {
+	sizeof(struct mBMSSessionUpdateResponse_ies),
+	offsetof(struct mBMSSessionUpdateResponse_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSSessionUpdateResponse_ies_2 = {
+	"mBMSSessionUpdateResponse-ies",
+	"mBMSSessionUpdateResponse-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSSessionUpdateResponse_ies_tags_2,
+	sizeof(asn_DEF_mBMSSessionUpdateResponse_ies_tags_2)
+		/sizeof(asn_DEF_mBMSSessionUpdateResponse_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSSessionUpdateResponse_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSSessionUpdateResponse_ies_tags_2)
+		/sizeof(asn_DEF_mBMSSessionUpdateResponse_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSSessionUpdateResponse_ies_constr_2,
+	asn_MBR_mBMSSessionUpdateResponse_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSSessionUpdateResponse_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSSessionUpdateResponse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSSessionUpdateResponse, mBMSSessionUpdateResponse_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSSessionUpdateResponse_ies_2,
+		memb_mBMSSessionUpdateResponse_ies_constraint_1,
+		&asn_PER_memb_mBMSSessionUpdateResponse_ies_constr_2,
+		0,
+		"mBMSSessionUpdateResponse-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSSessionUpdateResponse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSSessionUpdateResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSSessionUpdateResponse-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSSessionUpdateResponse_specs_1 = {
+	sizeof(struct RANAP_MBMSSessionUpdateResponse),
+	offsetof(struct RANAP_MBMSSessionUpdateResponse, _asn_ctx),
+	asn_MAP_RANAP_MBMSSessionUpdateResponse_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionUpdateResponse = {
+	"RANAP_MBMSSessionUpdateResponse",
+	"RANAP_MBMSSessionUpdateResponse",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSSessionUpdateResponse_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSSessionUpdateResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionUpdateResponse_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSSessionUpdateResponse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSSessionUpdateResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSSessionUpdateResponse_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSSessionUpdateResponse_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSSessionUpdateResponse_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSSessionUpdateResponse.h b/src/ranap/RANAP_MBMSSessionUpdateResponse.h
new file mode 100644
index 0000000..95d0f7f
--- /dev/null
+++ b/src/ranap/RANAP_MBMSSessionUpdateResponse.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSSessionUpdateResponse_H_
+#define	_RANAP_MBMSSessionUpdateResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSSessionUpdateResponse */
+typedef struct RANAP_MBMSSessionUpdateResponse {
+	struct mBMSSessionUpdateResponse_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSSessionUpdateResponse_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSSessionUpdateResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSSessionUpdateResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSSessionUpdateResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSUELinkingRequest.c b/src/ranap/RANAP_MBMSUELinkingRequest.c
new file mode 100644
index 0000000..3f5e152
--- /dev/null
+++ b/src/ranap/RANAP_MBMSUELinkingRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSUELinkingRequest.h"
+
+static int
+memb_mBMSUELinkingRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSUELinkingRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSUELinkingRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSUELinkingRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSUELinkingRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSUELinkingRequest_ies_specs_2 = {
+	sizeof(struct mBMSUELinkingRequest_ies),
+	offsetof(struct mBMSUELinkingRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSUELinkingRequest_ies_2 = {
+	"mBMSUELinkingRequest-ies",
+	"mBMSUELinkingRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSUELinkingRequest_ies_tags_2,
+	sizeof(asn_DEF_mBMSUELinkingRequest_ies_tags_2)
+		/sizeof(asn_DEF_mBMSUELinkingRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSUELinkingRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSUELinkingRequest_ies_tags_2)
+		/sizeof(asn_DEF_mBMSUELinkingRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSUELinkingRequest_ies_constr_2,
+	asn_MBR_mBMSUELinkingRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSUELinkingRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSUELinkingRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSUELinkingRequest, mBMSUELinkingRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSUELinkingRequest_ies_2,
+		memb_mBMSUELinkingRequest_ies_constraint_1,
+		&asn_PER_memb_mBMSUELinkingRequest_ies_constr_2,
+		0,
+		"mBMSUELinkingRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSUELinkingRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSUELinkingRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSUELinkingRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSUELinkingRequest_specs_1 = {
+	sizeof(struct RANAP_MBMSUELinkingRequest),
+	offsetof(struct RANAP_MBMSUELinkingRequest, _asn_ctx),
+	asn_MAP_RANAP_MBMSUELinkingRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSUELinkingRequest = {
+	"RANAP_MBMSUELinkingRequest",
+	"RANAP_MBMSUELinkingRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSUELinkingRequest_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSUELinkingRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSUELinkingRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSUELinkingRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSUELinkingRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSUELinkingRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSUELinkingRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSUELinkingRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSUELinkingRequest.h b/src/ranap/RANAP_MBMSUELinkingRequest.h
new file mode 100644
index 0000000..7f99842
--- /dev/null
+++ b/src/ranap/RANAP_MBMSUELinkingRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSUELinkingRequest_H_
+#define	_RANAP_MBMSUELinkingRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSUELinkingRequest */
+typedef struct RANAP_MBMSUELinkingRequest {
+	struct mBMSUELinkingRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSUELinkingRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSUELinkingRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSUELinkingRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSUELinkingRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MBMSUELinkingResponse.c b/src/ranap/RANAP_MBMSUELinkingResponse.c
new file mode 100644
index 0000000..9f04128
--- /dev/null
+++ b/src/ranap/RANAP_MBMSUELinkingResponse.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_MBMSUELinkingResponse.h"
+
+static int
+memb_mBMSUELinkingResponse_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_mBMSUELinkingResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_mBMSUELinkingResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_mBMSUELinkingResponse_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_mBMSUELinkingResponse_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_mBMSUELinkingResponse_ies_specs_2 = {
+	sizeof(struct mBMSUELinkingResponse_ies),
+	offsetof(struct mBMSUELinkingResponse_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_mBMSUELinkingResponse_ies_2 = {
+	"mBMSUELinkingResponse-ies",
+	"mBMSUELinkingResponse-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_mBMSUELinkingResponse_ies_tags_2,
+	sizeof(asn_DEF_mBMSUELinkingResponse_ies_tags_2)
+		/sizeof(asn_DEF_mBMSUELinkingResponse_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_mBMSUELinkingResponse_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_mBMSUELinkingResponse_ies_tags_2)
+		/sizeof(asn_DEF_mBMSUELinkingResponse_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_mBMSUELinkingResponse_ies_constr_2,
+	asn_MBR_mBMSUELinkingResponse_ies_2,
+	1,	/* Single element */
+	&asn_SPC_mBMSUELinkingResponse_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MBMSUELinkingResponse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MBMSUELinkingResponse, mBMSUELinkingResponse_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_mBMSUELinkingResponse_ies_2,
+		memb_mBMSUELinkingResponse_ies_constraint_1,
+		&asn_PER_memb_mBMSUELinkingResponse_ies_constr_2,
+		0,
+		"mBMSUELinkingResponse-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MBMSUELinkingResponse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MBMSUELinkingResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mBMSUELinkingResponse-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MBMSUELinkingResponse_specs_1 = {
+	sizeof(struct RANAP_MBMSUELinkingResponse),
+	offsetof(struct RANAP_MBMSUELinkingResponse, _asn_ctx),
+	asn_MAP_RANAP_MBMSUELinkingResponse_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSUELinkingResponse = {
+	"RANAP_MBMSUELinkingResponse",
+	"RANAP_MBMSUELinkingResponse",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MBMSUELinkingResponse_tags_1,
+	sizeof(asn_DEF_RANAP_MBMSUELinkingResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSUELinkingResponse_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MBMSUELinkingResponse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MBMSUELinkingResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_MBMSUELinkingResponse_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MBMSUELinkingResponse_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_MBMSUELinkingResponse_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MBMSUELinkingResponse.h b/src/ranap/RANAP_MBMSUELinkingResponse.h
new file mode 100644
index 0000000..c68c1c4
--- /dev/null
+++ b/src/ranap/RANAP_MBMSUELinkingResponse.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_MBMSUELinkingResponse_H_
+#define	_RANAP_MBMSUELinkingResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MBMSUELinkingResponse */
+typedef struct RANAP_MBMSUELinkingResponse {
+	struct mBMSUELinkingResponse_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} mBMSUELinkingResponse_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MBMSUELinkingResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MBMSUELinkingResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MBMSUELinkingResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MDT-Activation.c b/src/ranap/RANAP_MDT-Activation.c
new file mode 100644
index 0000000..4269a33
--- /dev/null
+++ b/src/ranap/RANAP_MDT-Activation.c
@@ -0,0 +1,169 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MDT-Activation.h"
+
+int
+RANAP_MDT_Activation_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MDT_Activation_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_MDT_Activation_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MDT_Activation_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MDT_Activation_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MDT_Activation_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MDT_Activation_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MDT_Activation_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MDT_Activation_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MDT_Activation_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MDT_Activation_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MDT_Activation_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MDT_Activation_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MDT_Activation_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MDT_Activation_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MDT_Activation_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MDT_Activation_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MDT_Activation_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MDT_Activation_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MDT_Activation_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MDT_Activation_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MDT_Activation_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MDT_Activation_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  2l }	/* (0..2,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_MDT_Activation_value2enum_1[] = {
+	{ 0,	16,	"immediateMDTonly" },
+	{ 1,	13,	"loggedMDTonly" },
+	{ 2,	20,	"immediateMDTandTrace" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_MDT_Activation_enum2value_1[] = {
+	2,	/* immediateMDTandTrace(2) */
+	0,	/* immediateMDTonly(0) */
+	1	/* loggedMDTonly(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_MDT_Activation_specs_1 = {
+	asn_MAP_RANAP_MDT_Activation_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_MDT_Activation_enum2value_1,	/* N => "tag"; sorted by N */
+	3,	/* Number of elements in the maps */
+	4,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MDT_Activation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MDT_Activation = {
+	"RANAP_MDT-Activation",
+	"RANAP_MDT-Activation",
+	RANAP_MDT_Activation_free,
+	RANAP_MDT_Activation_print,
+	RANAP_MDT_Activation_constraint,
+	RANAP_MDT_Activation_decode_ber,
+	RANAP_MDT_Activation_encode_der,
+	RANAP_MDT_Activation_decode_xer,
+	RANAP_MDT_Activation_encode_xer,
+	RANAP_MDT_Activation_decode_uper,
+	RANAP_MDT_Activation_encode_uper,
+	RANAP_MDT_Activation_decode_aper,
+	RANAP_MDT_Activation_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MDT_Activation_tags_1,
+	sizeof(asn_DEF_RANAP_MDT_Activation_tags_1)
+		/sizeof(asn_DEF_RANAP_MDT_Activation_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MDT_Activation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MDT_Activation_tags_1)
+		/sizeof(asn_DEF_RANAP_MDT_Activation_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MDT_Activation_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_MDT_Activation_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MDT-Activation.h b/src/ranap/RANAP_MDT-Activation.h
new file mode 100644
index 0000000..d74a08a
--- /dev/null
+++ b/src/ranap/RANAP_MDT-Activation.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MDT_Activation_H_
+#define	_RANAP_MDT_Activation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_MDT_Activation {
+	RANAP_MDT_Activation_immediateMDTonly	= 0,
+	RANAP_MDT_Activation_loggedMDTonly	= 1,
+	RANAP_MDT_Activation_immediateMDTandTrace	= 2
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_MDT_Activation;
+
+/* RANAP_MDT-Activation */
+typedef long	 RANAP_MDT_Activation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MDT_Activation;
+asn_struct_free_f RANAP_MDT_Activation_free;
+asn_struct_print_f RANAP_MDT_Activation_print;
+asn_constr_check_f RANAP_MDT_Activation_constraint;
+ber_type_decoder_f RANAP_MDT_Activation_decode_ber;
+der_type_encoder_f RANAP_MDT_Activation_encode_der;
+xer_type_decoder_f RANAP_MDT_Activation_decode_xer;
+xer_type_encoder_f RANAP_MDT_Activation_encode_xer;
+per_type_decoder_f RANAP_MDT_Activation_decode_uper;
+per_type_encoder_f RANAP_MDT_Activation_encode_uper;
+per_type_decoder_f RANAP_MDT_Activation_decode_aper;
+per_type_encoder_f RANAP_MDT_Activation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MDT_Activation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MDT-Configuration.c b/src/ranap/RANAP_MDT-Configuration.c
new file mode 100644
index 0000000..3d3efd1
--- /dev/null
+++ b/src/ranap/RANAP_MDT-Configuration.c
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MDT-Configuration.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_MDT_Configuration_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MDT_Configuration, mdtActivation),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_MDT_Activation,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"mdtActivation"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MDT_Configuration, mdtAreaScope),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANAP_MDTAreaScope,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"mdtAreaScope"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MDT_Configuration, mdtMode),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANAP_MDTMode,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"mdtMode"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_MDT_Configuration, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_MDT_Configuration_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_RANAP_MDT_Configuration_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MDT_Configuration_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mdtActivation */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mdtAreaScope */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mdtMode */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MDT_Configuration_specs_1 = {
+	sizeof(struct RANAP_MDT_Configuration),
+	offsetof(struct RANAP_MDT_Configuration, _asn_ctx),
+	asn_MAP_RANAP_MDT_Configuration_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_MDT_Configuration_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	3,	/* Start extensions */
+	5	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MDT_Configuration = {
+	"RANAP_MDT-Configuration",
+	"RANAP_MDT-Configuration",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MDT_Configuration_tags_1,
+	sizeof(asn_DEF_RANAP_MDT_Configuration_tags_1)
+		/sizeof(asn_DEF_RANAP_MDT_Configuration_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MDT_Configuration_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MDT_Configuration_tags_1)
+		/sizeof(asn_DEF_RANAP_MDT_Configuration_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MDT_Configuration_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_MDT_Configuration_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MDT-Configuration.h b/src/ranap/RANAP_MDT-Configuration.h
new file mode 100644
index 0000000..128cc7c
--- /dev/null
+++ b/src/ranap/RANAP_MDT-Configuration.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MDT_Configuration_H_
+#define	_RANAP_MDT_Configuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_MDT-Activation.h"
+#include "RANAP_MDTAreaScope.h"
+#include "RANAP_MDTMode.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MDT-Configuration */
+typedef struct RANAP_MDT_Configuration {
+	RANAP_MDT_Activation_t	 mdtActivation;
+	RANAP_MDTAreaScope_t	 mdtAreaScope;
+	RANAP_MDTMode_t	 mdtMode;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MDT_Configuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MDT_Configuration;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MDT_Configuration_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MDT-PLMN-List.c b/src/ranap/RANAP_MDT-PLMN-List.c
new file mode 100644
index 0000000..e24381d
--- /dev/null
+++ b/src/ranap/RANAP_MDT-PLMN-List.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MDT-PLMN-List.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_MDT_PLMN_List_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  1l,  16l }	/* (SIZE(1..16)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_MDT_PLMN_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_PLMNidentity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MDT_PLMN_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_MDT_PLMN_List_specs_1 = {
+	sizeof(struct RANAP_MDT_PLMN_List),
+	offsetof(struct RANAP_MDT_PLMN_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MDT_PLMN_List = {
+	"RANAP_MDT-PLMN-List",
+	"RANAP_MDT-PLMN-List",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MDT_PLMN_List_tags_1,
+	sizeof(asn_DEF_RANAP_MDT_PLMN_List_tags_1)
+		/sizeof(asn_DEF_RANAP_MDT_PLMN_List_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MDT_PLMN_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MDT_PLMN_List_tags_1)
+		/sizeof(asn_DEF_RANAP_MDT_PLMN_List_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MDT_PLMN_List_constr_1,
+	asn_MBR_RANAP_MDT_PLMN_List_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_MDT_PLMN_List_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MDT-PLMN-List.h b/src/ranap/RANAP_MDT-PLMN-List.h
new file mode 100644
index 0000000..329f2fd
--- /dev/null
+++ b/src/ranap/RANAP_MDT-PLMN-List.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MDT_PLMN_List_H_
+#define	_RANAP_MDT_PLMN_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PLMNidentity.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MDT-PLMN-List */
+typedef struct RANAP_MDT_PLMN_List {
+	A_SEQUENCE_OF(RANAP_PLMNidentity_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MDT_PLMN_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MDT_PLMN_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MDT_PLMN_List_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MDT-Report-Parameters.c b/src/ranap/RANAP_MDT-Report-Parameters.c
new file mode 100644
index 0000000..da15db3
--- /dev/null
+++ b/src/ranap/RANAP_MDT-Report-Parameters.c
@@ -0,0 +1,71 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MDT-Report-Parameters.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_MDT_Report_Parameters_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MDT_Report_Parameters, reportInterval),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ReportInterval,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"reportInterval"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MDT_Report_Parameters, reportAmount),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ReportAmount,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"reportAmount"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MDT_Report_Parameters_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MDT_Report_Parameters_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportInterval */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reportAmount */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_MDT_Report_Parameters_specs_1 = {
+	sizeof(struct RANAP_MDT_Report_Parameters),
+	offsetof(struct RANAP_MDT_Report_Parameters, _asn_ctx),
+	asn_MAP_RANAP_MDT_Report_Parameters_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MDT_Report_Parameters = {
+	"RANAP_MDT-Report-Parameters",
+	"RANAP_MDT-Report-Parameters",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MDT_Report_Parameters_tags_1,
+	sizeof(asn_DEF_RANAP_MDT_Report_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_MDT_Report_Parameters_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MDT_Report_Parameters_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MDT_Report_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_MDT_Report_Parameters_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_MDT_Report_Parameters_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_MDT_Report_Parameters_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MDT-Report-Parameters.h b/src/ranap/RANAP_MDT-Report-Parameters.h
new file mode 100644
index 0000000..2b1225b
--- /dev/null
+++ b/src/ranap/RANAP_MDT-Report-Parameters.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MDT_Report_Parameters_H_
+#define	_RANAP_MDT_Report_Parameters_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ReportInterval.h"
+#include "RANAP_ReportAmount.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MDT-Report-Parameters */
+typedef struct RANAP_MDT_Report_Parameters {
+	RANAP_ReportInterval_t	 reportInterval;
+	RANAP_ReportAmount_t	 reportAmount;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MDT_Report_Parameters_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MDT_Report_Parameters;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MDT_Report_Parameters_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MDTAreaScope.c b/src/ranap/RANAP_MDTAreaScope.c
new file mode 100644
index 0000000..dc00852
--- /dev/null
+++ b/src/ranap/RANAP_MDTAreaScope.c
@@ -0,0 +1,92 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MDTAreaScope.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_MDTAreaScope_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  3l }	/* (0..3,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_MDTAreaScope_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MDTAreaScope, choice.cellbased),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CellBased,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"cellbased"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MDTAreaScope, choice.labased),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_LABased,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"labased"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MDTAreaScope, choice.rabased),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RABased,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rabased"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MDTAreaScope, choice.plmn_area_based),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NULL,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"plmn-area-based"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MDTAreaScope_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellbased */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* labased */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rabased */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* plmn-area-based */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_MDTAreaScope_specs_1 = {
+	sizeof(struct RANAP_MDTAreaScope),
+	offsetof(struct RANAP_MDTAreaScope, _asn_ctx),
+	offsetof(struct RANAP_MDTAreaScope, present),
+	sizeof(((struct RANAP_MDTAreaScope *)0)->present),
+	asn_MAP_RANAP_MDTAreaScope_tag2el_1,
+	4,	/* Count of tags in the map */
+	0,
+	4	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MDTAreaScope = {
+	"RANAP_MDTAreaScope",
+	"RANAP_MDTAreaScope",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_MDTAreaScope_constr_1,
+	asn_MBR_RANAP_MDTAreaScope_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_MDTAreaScope_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MDTAreaScope.h b/src/ranap/RANAP_MDTAreaScope.h
new file mode 100644
index 0000000..d538daa
--- /dev/null
+++ b/src/ranap/RANAP_MDTAreaScope.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MDTAreaScope_H_
+#define	_RANAP_MDTAreaScope_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_CellBased.h"
+#include "RANAP_LABased.h"
+#include "RANAP_RABased.h"
+#include <NULL.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_MDTAreaScope_PR {
+	RANAP_MDTAreaScope_PR_NOTHING,	/* No components present */
+	RANAP_MDTAreaScope_PR_cellbased,
+	RANAP_MDTAreaScope_PR_labased,
+	RANAP_MDTAreaScope_PR_rabased,
+	RANAP_MDTAreaScope_PR_plmn_area_based,
+	/* Extensions may appear below */
+	
+} RANAP_MDTAreaScope_PR;
+
+/* RANAP_MDTAreaScope */
+typedef struct RANAP_MDTAreaScope {
+	RANAP_MDTAreaScope_PR present;
+	union RANAP_MDTAreaScope_u {
+		RANAP_CellBased_t	 cellbased;
+		RANAP_LABased_t	 labased;
+		RANAP_RABased_t	 rabased;
+		NULL_t	 plmn_area_based;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MDTAreaScope_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MDTAreaScope;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MDTAreaScope_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MDTMode.c b/src/ranap/RANAP_MDTMode.c
new file mode 100644
index 0000000..0391501
--- /dev/null
+++ b/src/ranap/RANAP_MDTMode.c
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MDTMode.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_MDTMode_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_MDTMode_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MDTMode, choice.immediateMDT),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ImmediateMDT,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"immediateMDT"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_MDTMode, choice.loggedMDT),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_LoggedMDT,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"loggedMDT"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_MDTMode_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* immediateMDT */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* loggedMDT */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_MDTMode_specs_1 = {
+	sizeof(struct RANAP_MDTMode),
+	offsetof(struct RANAP_MDTMode, _asn_ctx),
+	offsetof(struct RANAP_MDTMode, present),
+	sizeof(((struct RANAP_MDTMode *)0)->present),
+	asn_MAP_RANAP_MDTMode_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MDTMode = {
+	"RANAP_MDTMode",
+	"RANAP_MDTMode",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_MDTMode_constr_1,
+	asn_MBR_RANAP_MDTMode_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_MDTMode_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MDTMode.h b/src/ranap/RANAP_MDTMode.h
new file mode 100644
index 0000000..71da3af
--- /dev/null
+++ b/src/ranap/RANAP_MDTMode.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MDTMode_H_
+#define	_RANAP_MDTMode_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ImmediateMDT.h"
+#include "RANAP_LoggedMDT.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_MDTMode_PR {
+	RANAP_MDTMode_PR_NOTHING,	/* No components present */
+	RANAP_MDTMode_PR_immediateMDT,
+	RANAP_MDTMode_PR_loggedMDT,
+	/* Extensions may appear below */
+	
+} RANAP_MDTMode_PR;
+
+/* RANAP_MDTMode */
+typedef struct RANAP_MDTMode {
+	RANAP_MDTMode_PR present;
+	union RANAP_MDTMode_u {
+		RANAP_ImmediateMDT_t	 immediateMDT;
+		RANAP_LoggedMDT_t	 loggedMDT;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MDTMode_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MDTMode;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MDTMode_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MSISDN.c b/src/ranap/RANAP_MSISDN.c
new file mode 100644
index 0000000..c359e3f
--- /dev/null
+++ b/src/ranap/RANAP_MSISDN.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MSISDN.h"
+
+int
+RANAP_MSISDN_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 1l && size <= 9l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MSISDN_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_MSISDN_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MSISDN_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MSISDN_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MSISDN_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MSISDN_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MSISDN_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MSISDN_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MSISDN_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MSISDN_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MSISDN_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MSISDN_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MSISDN_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MSISDN_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MSISDN_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MSISDN_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MSISDN_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MSISDN_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MSISDN_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MSISDN_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MSISDN_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MSISDN_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  1l,  9l }	/* (SIZE(1..9)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MSISDN_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MSISDN = {
+	"RANAP_MSISDN",
+	"RANAP_MSISDN",
+	RANAP_MSISDN_free,
+	RANAP_MSISDN_print,
+	RANAP_MSISDN_constraint,
+	RANAP_MSISDN_decode_ber,
+	RANAP_MSISDN_encode_der,
+	RANAP_MSISDN_decode_xer,
+	RANAP_MSISDN_encode_xer,
+	RANAP_MSISDN_decode_uper,
+	RANAP_MSISDN_encode_uper,
+	RANAP_MSISDN_decode_aper,
+	RANAP_MSISDN_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MSISDN_tags_1,
+	sizeof(asn_DEF_RANAP_MSISDN_tags_1)
+		/sizeof(asn_DEF_RANAP_MSISDN_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MSISDN_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MSISDN_tags_1)
+		/sizeof(asn_DEF_RANAP_MSISDN_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MSISDN_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_MSISDN.h b/src/ranap/RANAP_MSISDN.h
new file mode 100644
index 0000000..5b248fb
--- /dev/null
+++ b/src/ranap/RANAP_MSISDN.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MSISDN_H_
+#define	_RANAP_MSISDN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MSISDN */
+typedef OCTET_STRING_t	 RANAP_MSISDN_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MSISDN;
+asn_struct_free_f RANAP_MSISDN_free;
+asn_struct_print_f RANAP_MSISDN_print;
+asn_constr_check_f RANAP_MSISDN_constraint;
+ber_type_decoder_f RANAP_MSISDN_decode_ber;
+der_type_encoder_f RANAP_MSISDN_encode_der;
+xer_type_decoder_f RANAP_MSISDN_decode_xer;
+xer_type_encoder_f RANAP_MSISDN_encode_xer;
+per_type_decoder_f RANAP_MSISDN_decode_uper;
+per_type_encoder_f RANAP_MSISDN_encode_uper;
+per_type_decoder_f RANAP_MSISDN_decode_aper;
+per_type_encoder_f RANAP_MSISDN_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MSISDN_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Management-Based-MDT-Allowed.c b/src/ranap/RANAP_Management-Based-MDT-Allowed.c
new file mode 100644
index 0000000..e48be5c
--- /dev/null
+++ b/src/ranap/RANAP_Management-Based-MDT-Allowed.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Management-Based-MDT-Allowed.h"
+
+int
+RANAP_Management_Based_MDT_Allowed_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Management_Based_MDT_Allowed_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_Management_Based_MDT_Allowed_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Management_Based_MDT_Allowed_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Management_Based_MDT_Allowed_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Management_Based_MDT_Allowed_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Management_Based_MDT_Allowed_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Management_Based_MDT_Allowed_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Management_Based_MDT_Allowed_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Management_Based_MDT_Allowed_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Management_Based_MDT_Allowed_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Management_Based_MDT_Allowed_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Management_Based_MDT_Allowed_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Management_Based_MDT_Allowed_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Management_Based_MDT_Allowed_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Management_Based_MDT_Allowed_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Management_Based_MDT_Allowed_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Management_Based_MDT_Allowed_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Management_Based_MDT_Allowed_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Management_Based_MDT_Allowed_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Management_Based_MDT_Allowed_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Management_Based_MDT_Allowed_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Management_Based_MDT_Allowed_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_Management_Based_MDT_Allowed_value2enum_1[] = {
+	{ 0,	7,	"allowed" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_Management_Based_MDT_Allowed_enum2value_1[] = {
+	0	/* allowed(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_Management_Based_MDT_Allowed_specs_1 = {
+	asn_MAP_RANAP_Management_Based_MDT_Allowed_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_Management_Based_MDT_Allowed_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Management_Based_MDT_Allowed_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Management_Based_MDT_Allowed = {
+	"RANAP_Management-Based-MDT-Allowed",
+	"RANAP_Management-Based-MDT-Allowed",
+	RANAP_Management_Based_MDT_Allowed_free,
+	RANAP_Management_Based_MDT_Allowed_print,
+	RANAP_Management_Based_MDT_Allowed_constraint,
+	RANAP_Management_Based_MDT_Allowed_decode_ber,
+	RANAP_Management_Based_MDT_Allowed_encode_der,
+	RANAP_Management_Based_MDT_Allowed_decode_xer,
+	RANAP_Management_Based_MDT_Allowed_encode_xer,
+	RANAP_Management_Based_MDT_Allowed_decode_uper,
+	RANAP_Management_Based_MDT_Allowed_encode_uper,
+	RANAP_Management_Based_MDT_Allowed_decode_aper,
+	RANAP_Management_Based_MDT_Allowed_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Management_Based_MDT_Allowed_tags_1,
+	sizeof(asn_DEF_RANAP_Management_Based_MDT_Allowed_tags_1)
+		/sizeof(asn_DEF_RANAP_Management_Based_MDT_Allowed_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Management_Based_MDT_Allowed_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Management_Based_MDT_Allowed_tags_1)
+		/sizeof(asn_DEF_RANAP_Management_Based_MDT_Allowed_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Management_Based_MDT_Allowed_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_Management_Based_MDT_Allowed_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Management-Based-MDT-Allowed.h b/src/ranap/RANAP_Management-Based-MDT-Allowed.h
new file mode 100644
index 0000000..48ad306
--- /dev/null
+++ b/src/ranap/RANAP_Management-Based-MDT-Allowed.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Management_Based_MDT_Allowed_H_
+#define	_RANAP_Management_Based_MDT_Allowed_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_Management_Based_MDT_Allowed {
+	RANAP_Management_Based_MDT_Allowed_allowed	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_Management_Based_MDT_Allowed;
+
+/* RANAP_Management-Based-MDT-Allowed */
+typedef long	 RANAP_Management_Based_MDT_Allowed_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Management_Based_MDT_Allowed;
+asn_struct_free_f RANAP_Management_Based_MDT_Allowed_free;
+asn_struct_print_f RANAP_Management_Based_MDT_Allowed_print;
+asn_constr_check_f RANAP_Management_Based_MDT_Allowed_constraint;
+ber_type_decoder_f RANAP_Management_Based_MDT_Allowed_decode_ber;
+der_type_encoder_f RANAP_Management_Based_MDT_Allowed_encode_der;
+xer_type_decoder_f RANAP_Management_Based_MDT_Allowed_decode_xer;
+xer_type_encoder_f RANAP_Management_Based_MDT_Allowed_encode_xer;
+per_type_decoder_f RANAP_Management_Based_MDT_Allowed_decode_uper;
+per_type_encoder_f RANAP_Management_Based_MDT_Allowed_encode_uper;
+per_type_decoder_f RANAP_Management_Based_MDT_Allowed_decode_aper;
+per_type_encoder_f RANAP_Management_Based_MDT_Allowed_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Management_Based_MDT_Allowed_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MaxBitrate.c b/src/ranap/RANAP_MaxBitrate.c
new file mode 100644
index 0000000..72c4720
--- /dev/null
+++ b/src/ranap/RANAP_MaxBitrate.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MaxBitrate.h"
+
+int
+RANAP_MaxBitrate_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 16000000l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MaxBitrate_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_MaxBitrate_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MaxBitrate_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MaxBitrate_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MaxBitrate_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MaxBitrate_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MaxBitrate_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MaxBitrate_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MaxBitrate_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MaxBitrate_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MaxBitrate_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MaxBitrate_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MaxBitrate_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MaxBitrate_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 24, -1,  1l,  16000000l }	/* (1..16000000) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MaxBitrate_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MaxBitrate = {
+	"RANAP_MaxBitrate",
+	"RANAP_MaxBitrate",
+	RANAP_MaxBitrate_free,
+	RANAP_MaxBitrate_print,
+	RANAP_MaxBitrate_constraint,
+	RANAP_MaxBitrate_decode_ber,
+	RANAP_MaxBitrate_encode_der,
+	RANAP_MaxBitrate_decode_xer,
+	RANAP_MaxBitrate_encode_xer,
+	RANAP_MaxBitrate_decode_uper,
+	RANAP_MaxBitrate_encode_uper,
+	RANAP_MaxBitrate_decode_aper,
+	RANAP_MaxBitrate_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MaxBitrate_tags_1,
+	sizeof(asn_DEF_RANAP_MaxBitrate_tags_1)
+		/sizeof(asn_DEF_RANAP_MaxBitrate_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MaxBitrate_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MaxBitrate_tags_1)
+		/sizeof(asn_DEF_RANAP_MaxBitrate_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MaxBitrate_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_MaxBitrate.h b/src/ranap/RANAP_MaxBitrate.h
new file mode 100644
index 0000000..2dad1b6
--- /dev/null
+++ b/src/ranap/RANAP_MaxBitrate.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MaxBitrate_H_
+#define	_RANAP_MaxBitrate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MaxBitrate */
+typedef long	 RANAP_MaxBitrate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MaxBitrate;
+asn_struct_free_f RANAP_MaxBitrate_free;
+asn_struct_print_f RANAP_MaxBitrate_print;
+asn_constr_check_f RANAP_MaxBitrate_constraint;
+ber_type_decoder_f RANAP_MaxBitrate_decode_ber;
+der_type_encoder_f RANAP_MaxBitrate_encode_der;
+xer_type_decoder_f RANAP_MaxBitrate_decode_xer;
+xer_type_encoder_f RANAP_MaxBitrate_encode_xer;
+per_type_decoder_f RANAP_MaxBitrate_decode_uper;
+per_type_encoder_f RANAP_MaxBitrate_encode_uper;
+per_type_decoder_f RANAP_MaxBitrate_decode_aper;
+per_type_encoder_f RANAP_MaxBitrate_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MaxBitrate_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MaxSDU-Size.c b/src/ranap/RANAP_MaxSDU-Size.c
new file mode 100644
index 0000000..2dfaa2e
--- /dev/null
+++ b/src/ranap/RANAP_MaxSDU-Size.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MaxSDU-Size.h"
+
+int
+RANAP_MaxSDU_Size_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 32768l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MaxSDU_Size_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_MaxSDU_Size_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MaxSDU_Size_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MaxSDU_Size_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MaxSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MaxSDU_Size_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MaxSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MaxSDU_Size_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MaxSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MaxSDU_Size_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MaxSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MaxSDU_Size_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MaxSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MaxSDU_Size_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MaxSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MaxSDU_Size_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MaxSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MaxSDU_Size_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MaxSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MaxSDU_Size_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MaxSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MaxSDU_Size_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0l,  32768l }	/* (0..32768) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MaxSDU_Size_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MaxSDU_Size = {
+	"RANAP_MaxSDU-Size",
+	"RANAP_MaxSDU-Size",
+	RANAP_MaxSDU_Size_free,
+	RANAP_MaxSDU_Size_print,
+	RANAP_MaxSDU_Size_constraint,
+	RANAP_MaxSDU_Size_decode_ber,
+	RANAP_MaxSDU_Size_encode_der,
+	RANAP_MaxSDU_Size_decode_xer,
+	RANAP_MaxSDU_Size_encode_xer,
+	RANAP_MaxSDU_Size_decode_uper,
+	RANAP_MaxSDU_Size_encode_uper,
+	RANAP_MaxSDU_Size_decode_aper,
+	RANAP_MaxSDU_Size_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MaxSDU_Size_tags_1,
+	sizeof(asn_DEF_RANAP_MaxSDU_Size_tags_1)
+		/sizeof(asn_DEF_RANAP_MaxSDU_Size_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MaxSDU_Size_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MaxSDU_Size_tags_1)
+		/sizeof(asn_DEF_RANAP_MaxSDU_Size_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MaxSDU_Size_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_MaxSDU-Size.h b/src/ranap/RANAP_MaxSDU-Size.h
new file mode 100644
index 0000000..cf680ba
--- /dev/null
+++ b/src/ranap/RANAP_MaxSDU-Size.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MaxSDU_Size_H_
+#define	_RANAP_MaxSDU_Size_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MaxSDU-Size */
+typedef long	 RANAP_MaxSDU_Size_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MaxSDU_Size;
+asn_struct_free_f RANAP_MaxSDU_Size_free;
+asn_struct_print_f RANAP_MaxSDU_Size_print;
+asn_constr_check_f RANAP_MaxSDU_Size_constraint;
+ber_type_decoder_f RANAP_MaxSDU_Size_decode_ber;
+der_type_encoder_f RANAP_MaxSDU_Size_encode_der;
+xer_type_decoder_f RANAP_MaxSDU_Size_decode_xer;
+xer_type_encoder_f RANAP_MaxSDU_Size_encode_xer;
+per_type_decoder_f RANAP_MaxSDU_Size_decode_uper;
+per_type_encoder_f RANAP_MaxSDU_Size_encode_uper;
+per_type_decoder_f RANAP_MaxSDU_Size_decode_aper;
+per_type_encoder_f RANAP_MaxSDU_Size_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MaxSDU_Size_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MeasBand.c b/src/ranap/RANAP_MeasBand.c
new file mode 100644
index 0000000..feb6867
--- /dev/null
+++ b/src/ranap/RANAP_MeasBand.c
@@ -0,0 +1,173 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MeasBand.h"
+
+int
+RANAP_MeasBand_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MeasBand_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_MeasBand_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MeasBand_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MeasBand_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MeasBand_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MeasBand_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MeasBand_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MeasBand_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MeasBand_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MeasBand_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MeasBand_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MeasBand_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MeasBand_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MeasBand_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MeasBand_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MeasBand_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MeasBand_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MeasBand_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MeasBand_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MeasBand_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MeasBand_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MeasBand_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 3,  3,  0l,  5l }	/* (0..5) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_MeasBand_value2enum_1[] = {
+	{ 0,	2,	"v6" },
+	{ 1,	3,	"v15" },
+	{ 2,	3,	"v25" },
+	{ 3,	3,	"v50" },
+	{ 4,	3,	"v75" },
+	{ 5,	4,	"v100" }
+};
+static const unsigned int asn_MAP_RANAP_MeasBand_enum2value_1[] = {
+	5,	/* v100(5) */
+	1,	/* v15(1) */
+	2,	/* v25(2) */
+	3,	/* v50(3) */
+	0,	/* v6(0) */
+	4	/* v75(4) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_MeasBand_specs_1 = {
+	asn_MAP_RANAP_MeasBand_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_MeasBand_enum2value_1,	/* N => "tag"; sorted by N */
+	6,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MeasBand_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MeasBand = {
+	"RANAP_MeasBand",
+	"RANAP_MeasBand",
+	RANAP_MeasBand_free,
+	RANAP_MeasBand_print,
+	RANAP_MeasBand_constraint,
+	RANAP_MeasBand_decode_ber,
+	RANAP_MeasBand_encode_der,
+	RANAP_MeasBand_decode_xer,
+	RANAP_MeasBand_encode_xer,
+	RANAP_MeasBand_decode_uper,
+	RANAP_MeasBand_encode_uper,
+	RANAP_MeasBand_decode_aper,
+	RANAP_MeasBand_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MeasBand_tags_1,
+	sizeof(asn_DEF_RANAP_MeasBand_tags_1)
+		/sizeof(asn_DEF_RANAP_MeasBand_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MeasBand_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MeasBand_tags_1)
+		/sizeof(asn_DEF_RANAP_MeasBand_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MeasBand_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_MeasBand_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MeasBand.h b/src/ranap/RANAP_MeasBand.h
new file mode 100644
index 0000000..580cd33
--- /dev/null
+++ b/src/ranap/RANAP_MeasBand.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MeasBand_H_
+#define	_RANAP_MeasBand_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_MeasBand {
+	RANAP_MeasBand_v6	= 0,
+	RANAP_MeasBand_v15	= 1,
+	RANAP_MeasBand_v25	= 2,
+	RANAP_MeasBand_v50	= 3,
+	RANAP_MeasBand_v75	= 4,
+	RANAP_MeasBand_v100	= 5
+} e_RANAP_MeasBand;
+
+/* RANAP_MeasBand */
+typedef long	 RANAP_MeasBand_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MeasBand;
+asn_struct_free_f RANAP_MeasBand_free;
+asn_struct_print_f RANAP_MeasBand_print;
+asn_constr_check_f RANAP_MeasBand_constraint;
+ber_type_decoder_f RANAP_MeasBand_decode_ber;
+der_type_encoder_f RANAP_MeasBand_encode_der;
+xer_type_decoder_f RANAP_MeasBand_decode_xer;
+xer_type_encoder_f RANAP_MeasBand_encode_xer;
+per_type_decoder_f RANAP_MeasBand_decode_uper;
+per_type_encoder_f RANAP_MeasBand_encode_uper;
+per_type_decoder_f RANAP_MeasBand_decode_aper;
+per_type_encoder_f RANAP_MeasBand_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MeasBand_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MeasurementQuantity.c b/src/ranap/RANAP_MeasurementQuantity.c
new file mode 100644
index 0000000..19e367d
--- /dev/null
+++ b/src/ranap/RANAP_MeasurementQuantity.c
@@ -0,0 +1,169 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MeasurementQuantity.h"
+
+int
+RANAP_MeasurementQuantity_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MeasurementQuantity_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_MeasurementQuantity_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MeasurementQuantity_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MeasurementQuantity_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MeasurementQuantity_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MeasurementQuantity_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MeasurementQuantity_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MeasurementQuantity_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MeasurementQuantity_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MeasurementQuantity_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MeasurementQuantity_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MeasurementQuantity_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MeasurementQuantity_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MeasurementQuantity_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MeasurementQuantity_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MeasurementQuantity_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MeasurementQuantity_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MeasurementQuantity_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MeasurementQuantity_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MeasurementQuantity_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MeasurementQuantity_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MeasurementQuantity_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  2l }	/* (0..2,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_MeasurementQuantity_value2enum_1[] = {
+	{ 0,	9,	"cpichEcNo" },
+	{ 1,	9,	"cpichRSCP" },
+	{ 2,	8,	"pathloss" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_MeasurementQuantity_enum2value_1[] = {
+	0,	/* cpichEcNo(0) */
+	1,	/* cpichRSCP(1) */
+	2	/* pathloss(2) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_MeasurementQuantity_specs_1 = {
+	asn_MAP_RANAP_MeasurementQuantity_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_MeasurementQuantity_enum2value_1,	/* N => "tag"; sorted by N */
+	3,	/* Number of elements in the maps */
+	4,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MeasurementQuantity_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MeasurementQuantity = {
+	"RANAP_MeasurementQuantity",
+	"RANAP_MeasurementQuantity",
+	RANAP_MeasurementQuantity_free,
+	RANAP_MeasurementQuantity_print,
+	RANAP_MeasurementQuantity_constraint,
+	RANAP_MeasurementQuantity_decode_ber,
+	RANAP_MeasurementQuantity_encode_der,
+	RANAP_MeasurementQuantity_decode_xer,
+	RANAP_MeasurementQuantity_encode_xer,
+	RANAP_MeasurementQuantity_decode_uper,
+	RANAP_MeasurementQuantity_encode_uper,
+	RANAP_MeasurementQuantity_decode_aper,
+	RANAP_MeasurementQuantity_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MeasurementQuantity_tags_1,
+	sizeof(asn_DEF_RANAP_MeasurementQuantity_tags_1)
+		/sizeof(asn_DEF_RANAP_MeasurementQuantity_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MeasurementQuantity_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MeasurementQuantity_tags_1)
+		/sizeof(asn_DEF_RANAP_MeasurementQuantity_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MeasurementQuantity_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_MeasurementQuantity_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MeasurementQuantity.h b/src/ranap/RANAP_MeasurementQuantity.h
new file mode 100644
index 0000000..4685528
--- /dev/null
+++ b/src/ranap/RANAP_MeasurementQuantity.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MeasurementQuantity_H_
+#define	_RANAP_MeasurementQuantity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_MeasurementQuantity {
+	RANAP_MeasurementQuantity_cpichEcNo	= 0,
+	RANAP_MeasurementQuantity_cpichRSCP	= 1,
+	RANAP_MeasurementQuantity_pathloss	= 2
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_MeasurementQuantity;
+
+/* RANAP_MeasurementQuantity */
+typedef long	 RANAP_MeasurementQuantity_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MeasurementQuantity;
+asn_struct_free_f RANAP_MeasurementQuantity_free;
+asn_struct_print_f RANAP_MeasurementQuantity_print;
+asn_constr_check_f RANAP_MeasurementQuantity_constraint;
+ber_type_decoder_f RANAP_MeasurementQuantity_decode_ber;
+der_type_encoder_f RANAP_MeasurementQuantity_encode_der;
+xer_type_decoder_f RANAP_MeasurementQuantity_decode_xer;
+xer_type_encoder_f RANAP_MeasurementQuantity_encode_xer;
+per_type_decoder_f RANAP_MeasurementQuantity_decode_uper;
+per_type_encoder_f RANAP_MeasurementQuantity_encode_uper;
+per_type_decoder_f RANAP_MeasurementQuantity_decode_aper;
+per_type_encoder_f RANAP_MeasurementQuantity_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MeasurementQuantity_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MeasurementsToActivate.c b/src/ranap/RANAP_MeasurementsToActivate.c
new file mode 100644
index 0000000..7396470
--- /dev/null
+++ b/src/ranap/RANAP_MeasurementsToActivate.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MeasurementsToActivate.h"
+
+int
+RANAP_MeasurementsToActivate_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 8l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_MeasurementsToActivate_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_BIT_STRING.free_struct;
+	td->print_struct   = asn_DEF_BIT_STRING.print_struct;
+	td->check_constraints = asn_DEF_BIT_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_BIT_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_BIT_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_BIT_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_BIT_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_BIT_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_BIT_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_BIT_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_BIT_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_BIT_STRING.per_constraints;
+	td->elements       = asn_DEF_BIT_STRING.elements;
+	td->elements_count = asn_DEF_BIT_STRING.elements_count;
+	td->specifics      = asn_DEF_BIT_STRING.specifics;
+}
+
+void
+RANAP_MeasurementsToActivate_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_MeasurementsToActivate_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_MeasurementsToActivate_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MeasurementsToActivate_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MeasurementsToActivate_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_MeasurementsToActivate_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_MeasurementsToActivate_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MeasurementsToActivate_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MeasurementsToActivate_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_MeasurementsToActivate_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_MeasurementsToActivate_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_MeasurementsToActivate_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_MeasurementsToActivate_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MeasurementsToActivate_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_MeasurementsToActivate_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MeasurementsToActivate_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_MeasurementsToActivate_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_MeasurementsToActivate_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_MeasurementsToActivate_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_MeasurementsToActivate_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_MeasurementsToActivate_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  8l,  8l }	/* (SIZE(8..8)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MeasurementsToActivate_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MeasurementsToActivate = {
+	"RANAP_MeasurementsToActivate",
+	"RANAP_MeasurementsToActivate",
+	RANAP_MeasurementsToActivate_free,
+	RANAP_MeasurementsToActivate_print,
+	RANAP_MeasurementsToActivate_constraint,
+	RANAP_MeasurementsToActivate_decode_ber,
+	RANAP_MeasurementsToActivate_encode_der,
+	RANAP_MeasurementsToActivate_decode_xer,
+	RANAP_MeasurementsToActivate_encode_xer,
+	RANAP_MeasurementsToActivate_decode_uper,
+	RANAP_MeasurementsToActivate_encode_uper,
+	RANAP_MeasurementsToActivate_decode_aper,
+	RANAP_MeasurementsToActivate_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MeasurementsToActivate_tags_1,
+	sizeof(asn_DEF_RANAP_MeasurementsToActivate_tags_1)
+		/sizeof(asn_DEF_RANAP_MeasurementsToActivate_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MeasurementsToActivate_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MeasurementsToActivate_tags_1)
+		/sizeof(asn_DEF_RANAP_MeasurementsToActivate_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MeasurementsToActivate_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_MeasurementsToActivate.h b/src/ranap/RANAP_MeasurementsToActivate.h
new file mode 100644
index 0000000..b0c3695
--- /dev/null
+++ b/src/ranap/RANAP_MeasurementsToActivate.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MeasurementsToActivate_H_
+#define	_RANAP_MeasurementsToActivate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MeasurementsToActivate */
+typedef BIT_STRING_t	 RANAP_MeasurementsToActivate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MeasurementsToActivate;
+asn_struct_free_f RANAP_MeasurementsToActivate_free;
+asn_struct_print_f RANAP_MeasurementsToActivate_print;
+asn_constr_check_f RANAP_MeasurementsToActivate_constraint;
+ber_type_decoder_f RANAP_MeasurementsToActivate_decode_ber;
+der_type_encoder_f RANAP_MeasurementsToActivate_encode_der;
+xer_type_decoder_f RANAP_MeasurementsToActivate_decode_xer;
+xer_type_encoder_f RANAP_MeasurementsToActivate_encode_xer;
+per_type_decoder_f RANAP_MeasurementsToActivate_decode_uper;
+per_type_encoder_f RANAP_MeasurementsToActivate_encode_uper;
+per_type_decoder_f RANAP_MeasurementsToActivate_decode_aper;
+per_type_encoder_f RANAP_MeasurementsToActivate_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MeasurementsToActivate_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_MessageStructure.c b/src/ranap/RANAP_MessageStructure.c
new file mode 100644
index 0000000..e41b0da
--- /dev/null
+++ b/src/ranap/RANAP_MessageStructure.c
@@ -0,0 +1,135 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_MessageStructure.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_MessageStructure_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 8,  8,  1l,  256l }	/* (SIZE(1..256)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct Member, iE_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ProtocolIE_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-ID"
+		},
+	{ ATF_POINTER, 2, offsetof(struct Member, repetitionNumber),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RepetitionNumber1,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"repetitionNumber"
+		},
+	{ ATF_POINTER, 1, offsetof(struct Member, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_Member_oms_2[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iE-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* repetitionNumber */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+	sizeof(struct Member),
+	offsetof(struct Member, _asn_ctx),
+	asn_MAP_Member_tag2el_2,
+	3,	/* Count of tags in the map */
+	asn_MAP_Member_oms_2,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+	"SEQUENCE",
+	"SEQUENCE",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_Member_tags_2,
+	sizeof(asn_DEF_Member_tags_2)
+		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	asn_DEF_Member_tags_2,	/* Same as above */
+	sizeof(asn_DEF_Member_tags_2)
+		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_Member_2,
+	3,	/* Elements count */
+	&asn_SPC_Member_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_MessageStructure_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_Member_2,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_MessageStructure_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_MessageStructure_specs_1 = {
+	sizeof(struct RANAP_MessageStructure),
+	offsetof(struct RANAP_MessageStructure, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_MessageStructure = {
+	"RANAP_MessageStructure",
+	"RANAP_MessageStructure",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_MessageStructure_tags_1,
+	sizeof(asn_DEF_RANAP_MessageStructure_tags_1)
+		/sizeof(asn_DEF_RANAP_MessageStructure_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_MessageStructure_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_MessageStructure_tags_1)
+		/sizeof(asn_DEF_RANAP_MessageStructure_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_MessageStructure_constr_1,
+	asn_MBR_RANAP_MessageStructure_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_MessageStructure_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_MessageStructure.h b/src/ranap/RANAP_MessageStructure.h
new file mode 100644
index 0000000..d1f2829
--- /dev/null
+++ b/src/ranap/RANAP_MessageStructure.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_MessageStructure_H_
+#define	_RANAP_MessageStructure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "RANAP_ProtocolIE-ID.h"
+#include "RANAP_RepetitionNumber1.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_MessageStructure */
+typedef struct RANAP_MessageStructure {
+	A_SEQUENCE_OF(struct Member {
+		RANAP_ProtocolIE_ID_t	 iE_ID;
+		RANAP_RepetitionNumber1_t	*repetitionNumber	/* OPTIONAL */;
+		RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_MessageStructure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_MessageStructure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_MessageStructure_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_NAS-PDU.c b/src/ranap/RANAP_NAS-PDU.c
new file mode 100644
index 0000000..7f03fce
--- /dev/null
+++ b/src/ranap/RANAP_NAS-PDU.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_NAS-PDU.h"
+
+int
+RANAP_NAS_PDU_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_NAS_PDU_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_NAS_PDU_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_NAS_PDU_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_NAS_PDU_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NAS_PDU_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NAS_PDU_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_NAS_PDU_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_NAS_PDU_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NAS_PDU_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NAS_PDU_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_NAS_PDU_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_NAS_PDU_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NAS_PDU_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NAS_PDU_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_NAS_PDU_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_NAS_PDU_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_NAS_PDU_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_NAS_PDU_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_NAS_PDU_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_NAS_PDU_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_NAS_PDU_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_NAS_PDU_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_NAS_PDU = {
+	"RANAP_NAS-PDU",
+	"RANAP_NAS-PDU",
+	RANAP_NAS_PDU_free,
+	RANAP_NAS_PDU_print,
+	RANAP_NAS_PDU_constraint,
+	RANAP_NAS_PDU_decode_ber,
+	RANAP_NAS_PDU_encode_der,
+	RANAP_NAS_PDU_decode_xer,
+	RANAP_NAS_PDU_encode_xer,
+	RANAP_NAS_PDU_decode_uper,
+	RANAP_NAS_PDU_encode_uper,
+	RANAP_NAS_PDU_decode_aper,
+	RANAP_NAS_PDU_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_NAS_PDU_tags_1,
+	sizeof(asn_DEF_RANAP_NAS_PDU_tags_1)
+		/sizeof(asn_DEF_RANAP_NAS_PDU_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_NAS_PDU_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_NAS_PDU_tags_1)
+		/sizeof(asn_DEF_RANAP_NAS_PDU_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_NAS-PDU.h b/src/ranap/RANAP_NAS-PDU.h
new file mode 100644
index 0000000..52a85ee
--- /dev/null
+++ b/src/ranap/RANAP_NAS-PDU.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_NAS_PDU_H_
+#define	_RANAP_NAS_PDU_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_NAS-PDU */
+typedef OCTET_STRING_t	 RANAP_NAS_PDU_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_NAS_PDU;
+asn_struct_free_f RANAP_NAS_PDU_free;
+asn_struct_print_f RANAP_NAS_PDU_print;
+asn_constr_check_f RANAP_NAS_PDU_constraint;
+ber_type_decoder_f RANAP_NAS_PDU_decode_ber;
+der_type_encoder_f RANAP_NAS_PDU_encode_der;
+xer_type_decoder_f RANAP_NAS_PDU_decode_xer;
+xer_type_encoder_f RANAP_NAS_PDU_encode_xer;
+per_type_decoder_f RANAP_NAS_PDU_decode_uper;
+per_type_encoder_f RANAP_NAS_PDU_encode_uper;
+per_type_decoder_f RANAP_NAS_PDU_decode_aper;
+per_type_encoder_f RANAP_NAS_PDU_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_NAS_PDU_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_NAS-SequenceNumber.c b/src/ranap/RANAP_NAS-SequenceNumber.c
new file mode 100644
index 0000000..2603154
--- /dev/null
+++ b/src/ranap/RANAP_NAS-SequenceNumber.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_NAS-SequenceNumber.h"
+
+int
+RANAP_NAS_SequenceNumber_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 2l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_NAS_SequenceNumber_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_BIT_STRING.free_struct;
+	td->print_struct   = asn_DEF_BIT_STRING.print_struct;
+	td->check_constraints = asn_DEF_BIT_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_BIT_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_BIT_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_BIT_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_BIT_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_BIT_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_BIT_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_BIT_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_BIT_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_BIT_STRING.per_constraints;
+	td->elements       = asn_DEF_BIT_STRING.elements;
+	td->elements_count = asn_DEF_BIT_STRING.elements_count;
+	td->specifics      = asn_DEF_BIT_STRING.specifics;
+}
+
+void
+RANAP_NAS_SequenceNumber_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_NAS_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_NAS_SequenceNumber_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NAS_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NAS_SequenceNumber_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_NAS_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_NAS_SequenceNumber_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NAS_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NAS_SequenceNumber_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_NAS_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_NAS_SequenceNumber_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NAS_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NAS_SequenceNumber_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_NAS_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_NAS_SequenceNumber_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_NAS_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_NAS_SequenceNumber_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_NAS_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_NAS_SequenceNumber_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_NAS_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_NAS_SequenceNumber_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  2l,  2l }	/* (SIZE(2..2)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_NAS_SequenceNumber_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_NAS_SequenceNumber = {
+	"RANAP_NAS-SequenceNumber",
+	"RANAP_NAS-SequenceNumber",
+	RANAP_NAS_SequenceNumber_free,
+	RANAP_NAS_SequenceNumber_print,
+	RANAP_NAS_SequenceNumber_constraint,
+	RANAP_NAS_SequenceNumber_decode_ber,
+	RANAP_NAS_SequenceNumber_encode_der,
+	RANAP_NAS_SequenceNumber_decode_xer,
+	RANAP_NAS_SequenceNumber_encode_xer,
+	RANAP_NAS_SequenceNumber_decode_uper,
+	RANAP_NAS_SequenceNumber_encode_uper,
+	RANAP_NAS_SequenceNumber_decode_aper,
+	RANAP_NAS_SequenceNumber_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_NAS_SequenceNumber_tags_1,
+	sizeof(asn_DEF_RANAP_NAS_SequenceNumber_tags_1)
+		/sizeof(asn_DEF_RANAP_NAS_SequenceNumber_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_NAS_SequenceNumber_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_NAS_SequenceNumber_tags_1)
+		/sizeof(asn_DEF_RANAP_NAS_SequenceNumber_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_NAS_SequenceNumber_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_NAS-SequenceNumber.h b/src/ranap/RANAP_NAS-SequenceNumber.h
new file mode 100644
index 0000000..a394e2d
--- /dev/null
+++ b/src/ranap/RANAP_NAS-SequenceNumber.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_NAS_SequenceNumber_H_
+#define	_RANAP_NAS_SequenceNumber_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_NAS-SequenceNumber */
+typedef BIT_STRING_t	 RANAP_NAS_SequenceNumber_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_NAS_SequenceNumber;
+asn_struct_free_f RANAP_NAS_SequenceNumber_free;
+asn_struct_print_f RANAP_NAS_SequenceNumber_print;
+asn_constr_check_f RANAP_NAS_SequenceNumber_constraint;
+ber_type_decoder_f RANAP_NAS_SequenceNumber_decode_ber;
+der_type_encoder_f RANAP_NAS_SequenceNumber_encode_der;
+xer_type_decoder_f RANAP_NAS_SequenceNumber_decode_xer;
+xer_type_encoder_f RANAP_NAS_SequenceNumber_encode_xer;
+per_type_decoder_f RANAP_NAS_SequenceNumber_decode_uper;
+per_type_encoder_f RANAP_NAS_SequenceNumber_encode_uper;
+per_type_decoder_f RANAP_NAS_SequenceNumber_decode_aper;
+per_type_encoder_f RANAP_NAS_SequenceNumber_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_NAS_SequenceNumber_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_NAS-SynchronisationIndicator.c b/src/ranap/RANAP_NAS-SynchronisationIndicator.c
new file mode 100644
index 0000000..16dcaed
--- /dev/null
+++ b/src/ranap/RANAP_NAS-SynchronisationIndicator.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_NAS-SynchronisationIndicator.h"
+
+int
+RANAP_NAS_SynchronisationIndicator_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 4l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_NAS_SynchronisationIndicator_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_BIT_STRING.free_struct;
+	td->print_struct   = asn_DEF_BIT_STRING.print_struct;
+	td->check_constraints = asn_DEF_BIT_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_BIT_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_BIT_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_BIT_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_BIT_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_BIT_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_BIT_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_BIT_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_BIT_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_BIT_STRING.per_constraints;
+	td->elements       = asn_DEF_BIT_STRING.elements;
+	td->elements_count = asn_DEF_BIT_STRING.elements_count;
+	td->specifics      = asn_DEF_BIT_STRING.specifics;
+}
+
+void
+RANAP_NAS_SynchronisationIndicator_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_NAS_SynchronisationIndicator_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_NAS_SynchronisationIndicator_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NAS_SynchronisationIndicator_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NAS_SynchronisationIndicator_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_NAS_SynchronisationIndicator_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_NAS_SynchronisationIndicator_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NAS_SynchronisationIndicator_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NAS_SynchronisationIndicator_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_NAS_SynchronisationIndicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_NAS_SynchronisationIndicator_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NAS_SynchronisationIndicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NAS_SynchronisationIndicator_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_NAS_SynchronisationIndicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_NAS_SynchronisationIndicator_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_NAS_SynchronisationIndicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_NAS_SynchronisationIndicator_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_NAS_SynchronisationIndicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_NAS_SynchronisationIndicator_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_NAS_SynchronisationIndicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_NAS_SynchronisationIndicator_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  4l,  4l }	/* (SIZE(4..4)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_NAS_SynchronisationIndicator_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_NAS_SynchronisationIndicator = {
+	"RANAP_NAS-SynchronisationIndicator",
+	"RANAP_NAS-SynchronisationIndicator",
+	RANAP_NAS_SynchronisationIndicator_free,
+	RANAP_NAS_SynchronisationIndicator_print,
+	RANAP_NAS_SynchronisationIndicator_constraint,
+	RANAP_NAS_SynchronisationIndicator_decode_ber,
+	RANAP_NAS_SynchronisationIndicator_encode_der,
+	RANAP_NAS_SynchronisationIndicator_decode_xer,
+	RANAP_NAS_SynchronisationIndicator_encode_xer,
+	RANAP_NAS_SynchronisationIndicator_decode_uper,
+	RANAP_NAS_SynchronisationIndicator_encode_uper,
+	RANAP_NAS_SynchronisationIndicator_decode_aper,
+	RANAP_NAS_SynchronisationIndicator_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_NAS_SynchronisationIndicator_tags_1,
+	sizeof(asn_DEF_RANAP_NAS_SynchronisationIndicator_tags_1)
+		/sizeof(asn_DEF_RANAP_NAS_SynchronisationIndicator_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_NAS_SynchronisationIndicator_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_NAS_SynchronisationIndicator_tags_1)
+		/sizeof(asn_DEF_RANAP_NAS_SynchronisationIndicator_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_NAS_SynchronisationIndicator_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_NAS-SynchronisationIndicator.h b/src/ranap/RANAP_NAS-SynchronisationIndicator.h
new file mode 100644
index 0000000..dcd8856
--- /dev/null
+++ b/src/ranap/RANAP_NAS-SynchronisationIndicator.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_NAS_SynchronisationIndicator_H_
+#define	_RANAP_NAS_SynchronisationIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_NAS-SynchronisationIndicator */
+typedef BIT_STRING_t	 RANAP_NAS_SynchronisationIndicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_NAS_SynchronisationIndicator;
+asn_struct_free_f RANAP_NAS_SynchronisationIndicator_free;
+asn_struct_print_f RANAP_NAS_SynchronisationIndicator_print;
+asn_constr_check_f RANAP_NAS_SynchronisationIndicator_constraint;
+ber_type_decoder_f RANAP_NAS_SynchronisationIndicator_decode_ber;
+der_type_encoder_f RANAP_NAS_SynchronisationIndicator_encode_der;
+xer_type_decoder_f RANAP_NAS_SynchronisationIndicator_decode_xer;
+xer_type_encoder_f RANAP_NAS_SynchronisationIndicator_encode_xer;
+per_type_decoder_f RANAP_NAS_SynchronisationIndicator_decode_uper;
+per_type_encoder_f RANAP_NAS_SynchronisationIndicator_encode_uper;
+per_type_decoder_f RANAP_NAS_SynchronisationIndicator_decode_aper;
+per_type_encoder_f RANAP_NAS_SynchronisationIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_NAS_SynchronisationIndicator_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_NRTLoadInformationValue.c b/src/ranap/RANAP_NRTLoadInformationValue.c
new file mode 100644
index 0000000..2bfb0b4
--- /dev/null
+++ b/src/ranap/RANAP_NRTLoadInformationValue.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_NRTLoadInformationValue.h"
+
+int
+RANAP_NRTLoadInformationValue_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 3l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_NRTLoadInformationValue_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_NRTLoadInformationValue_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_NRTLoadInformationValue_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_NRTLoadInformationValue_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NRTLoadInformationValue_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NRTLoadInformationValue_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_NRTLoadInformationValue_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_NRTLoadInformationValue_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NRTLoadInformationValue_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NRTLoadInformationValue_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_NRTLoadInformationValue_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_NRTLoadInformationValue_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NRTLoadInformationValue_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NRTLoadInformationValue_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_NRTLoadInformationValue_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_NRTLoadInformationValue_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_NRTLoadInformationValue_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_NRTLoadInformationValue_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_NRTLoadInformationValue_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_NRTLoadInformationValue_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_NRTLoadInformationValue_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_NRTLoadInformationValue_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0l,  3l }	/* (0..3) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_NRTLoadInformationValue_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_NRTLoadInformationValue = {
+	"RANAP_NRTLoadInformationValue",
+	"RANAP_NRTLoadInformationValue",
+	RANAP_NRTLoadInformationValue_free,
+	RANAP_NRTLoadInformationValue_print,
+	RANAP_NRTLoadInformationValue_constraint,
+	RANAP_NRTLoadInformationValue_decode_ber,
+	RANAP_NRTLoadInformationValue_encode_der,
+	RANAP_NRTLoadInformationValue_decode_xer,
+	RANAP_NRTLoadInformationValue_encode_xer,
+	RANAP_NRTLoadInformationValue_decode_uper,
+	RANAP_NRTLoadInformationValue_encode_uper,
+	RANAP_NRTLoadInformationValue_decode_aper,
+	RANAP_NRTLoadInformationValue_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_NRTLoadInformationValue_tags_1,
+	sizeof(asn_DEF_RANAP_NRTLoadInformationValue_tags_1)
+		/sizeof(asn_DEF_RANAP_NRTLoadInformationValue_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_NRTLoadInformationValue_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_NRTLoadInformationValue_tags_1)
+		/sizeof(asn_DEF_RANAP_NRTLoadInformationValue_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_NRTLoadInformationValue_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_NRTLoadInformationValue.h b/src/ranap/RANAP_NRTLoadInformationValue.h
new file mode 100644
index 0000000..33db0a0
--- /dev/null
+++ b/src/ranap/RANAP_NRTLoadInformationValue.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_NRTLoadInformationValue_H_
+#define	_RANAP_NRTLoadInformationValue_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_NRTLoadInformationValue */
+typedef long	 RANAP_NRTLoadInformationValue_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_NRTLoadInformationValue;
+asn_struct_free_f RANAP_NRTLoadInformationValue_free;
+asn_struct_print_f RANAP_NRTLoadInformationValue_print;
+asn_constr_check_f RANAP_NRTLoadInformationValue_constraint;
+ber_type_decoder_f RANAP_NRTLoadInformationValue_decode_ber;
+der_type_encoder_f RANAP_NRTLoadInformationValue_encode_der;
+xer_type_decoder_f RANAP_NRTLoadInformationValue_decode_xer;
+xer_type_encoder_f RANAP_NRTLoadInformationValue_encode_xer;
+per_type_decoder_f RANAP_NRTLoadInformationValue_decode_uper;
+per_type_encoder_f RANAP_NRTLoadInformationValue_encode_uper;
+per_type_decoder_f RANAP_NRTLoadInformationValue_decode_aper;
+per_type_encoder_f RANAP_NRTLoadInformationValue_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_NRTLoadInformationValue_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_NewBSS-To-OldBSS-Information.c b/src/ranap/RANAP_NewBSS-To-OldBSS-Information.c
new file mode 100644
index 0000000..46d434e
--- /dev/null
+++ b/src/ranap/RANAP_NewBSS-To-OldBSS-Information.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_NewBSS-To-OldBSS-Information.h"
+
+int
+RANAP_NewBSS_To_OldBSS_Information_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_NewBSS_To_OldBSS_Information_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_NewBSS_To_OldBSS_Information_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_NewBSS_To_OldBSS_Information_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_NewBSS_To_OldBSS_Information_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NewBSS_To_OldBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NewBSS_To_OldBSS_Information_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_NewBSS_To_OldBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_NewBSS_To_OldBSS_Information_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NewBSS_To_OldBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NewBSS_To_OldBSS_Information_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_NewBSS_To_OldBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_NewBSS_To_OldBSS_Information_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NewBSS_To_OldBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NewBSS_To_OldBSS_Information_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_NewBSS_To_OldBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_NewBSS_To_OldBSS_Information_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_NewBSS_To_OldBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_NewBSS_To_OldBSS_Information_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_NewBSS_To_OldBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_NewBSS_To_OldBSS_Information_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_NewBSS_To_OldBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_NewBSS_To_OldBSS_Information_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_NewBSS_To_OldBSS_Information = {
+	"RANAP_NewBSS-To-OldBSS-Information",
+	"RANAP_NewBSS-To-OldBSS-Information",
+	RANAP_NewBSS_To_OldBSS_Information_free,
+	RANAP_NewBSS_To_OldBSS_Information_print,
+	RANAP_NewBSS_To_OldBSS_Information_constraint,
+	RANAP_NewBSS_To_OldBSS_Information_decode_ber,
+	RANAP_NewBSS_To_OldBSS_Information_encode_der,
+	RANAP_NewBSS_To_OldBSS_Information_decode_xer,
+	RANAP_NewBSS_To_OldBSS_Information_encode_xer,
+	RANAP_NewBSS_To_OldBSS_Information_decode_uper,
+	RANAP_NewBSS_To_OldBSS_Information_encode_uper,
+	RANAP_NewBSS_To_OldBSS_Information_decode_aper,
+	RANAP_NewBSS_To_OldBSS_Information_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_NewBSS_To_OldBSS_Information_tags_1,
+	sizeof(asn_DEF_RANAP_NewBSS_To_OldBSS_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_NewBSS_To_OldBSS_Information_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_NewBSS_To_OldBSS_Information_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_NewBSS_To_OldBSS_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_NewBSS_To_OldBSS_Information_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_NewBSS-To-OldBSS-Information.h b/src/ranap/RANAP_NewBSS-To-OldBSS-Information.h
new file mode 100644
index 0000000..13317df
--- /dev/null
+++ b/src/ranap/RANAP_NewBSS-To-OldBSS-Information.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_NewBSS_To_OldBSS_Information_H_
+#define	_RANAP_NewBSS_To_OldBSS_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_NewBSS-To-OldBSS-Information */
+typedef OCTET_STRING_t	 RANAP_NewBSS_To_OldBSS_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_NewBSS_To_OldBSS_Information;
+asn_struct_free_f RANAP_NewBSS_To_OldBSS_Information_free;
+asn_struct_print_f RANAP_NewBSS_To_OldBSS_Information_print;
+asn_constr_check_f RANAP_NewBSS_To_OldBSS_Information_constraint;
+ber_type_decoder_f RANAP_NewBSS_To_OldBSS_Information_decode_ber;
+der_type_encoder_f RANAP_NewBSS_To_OldBSS_Information_encode_der;
+xer_type_decoder_f RANAP_NewBSS_To_OldBSS_Information_decode_xer;
+xer_type_encoder_f RANAP_NewBSS_To_OldBSS_Information_encode_xer;
+per_type_decoder_f RANAP_NewBSS_To_OldBSS_Information_decode_uper;
+per_type_encoder_f RANAP_NewBSS_To_OldBSS_Information_encode_uper;
+per_type_decoder_f RANAP_NewBSS_To_OldBSS_Information_decode_aper;
+per_type_encoder_f RANAP_NewBSS_To_OldBSS_Information_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_NewBSS_To_OldBSS_Information_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_NewRAListofIdleModeUEs.c b/src/ranap/RANAP_NewRAListofIdleModeUEs.c
new file mode 100644
index 0000000..ff9ebed
--- /dev/null
+++ b/src/ranap/RANAP_NewRAListofIdleModeUEs.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_NewRAListofIdleModeUEs.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_NewRAListofIdleModeUEs_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16, -1,  1l,  65536l }	/* (SIZE(1..65536)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_NewRAListofIdleModeUEs_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_RAC,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_NewRAListofIdleModeUEs_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_NewRAListofIdleModeUEs_specs_1 = {
+	sizeof(struct RANAP_NewRAListofIdleModeUEs),
+	offsetof(struct RANAP_NewRAListofIdleModeUEs, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_NewRAListofIdleModeUEs = {
+	"RANAP_NewRAListofIdleModeUEs",
+	"RANAP_NewRAListofIdleModeUEs",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_NewRAListofIdleModeUEs_tags_1,
+	sizeof(asn_DEF_RANAP_NewRAListofIdleModeUEs_tags_1)
+		/sizeof(asn_DEF_RANAP_NewRAListofIdleModeUEs_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_NewRAListofIdleModeUEs_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_NewRAListofIdleModeUEs_tags_1)
+		/sizeof(asn_DEF_RANAP_NewRAListofIdleModeUEs_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_NewRAListofIdleModeUEs_constr_1,
+	asn_MBR_RANAP_NewRAListofIdleModeUEs_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_NewRAListofIdleModeUEs_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_NewRAListofIdleModeUEs.h b/src/ranap/RANAP_NewRAListofIdleModeUEs.h
new file mode 100644
index 0000000..8d1b527
--- /dev/null
+++ b/src/ranap/RANAP_NewRAListofIdleModeUEs.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_NewRAListofIdleModeUEs_H_
+#define	_RANAP_NewRAListofIdleModeUEs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_RAC.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_NewRAListofIdleModeUEs */
+typedef struct RANAP_NewRAListofIdleModeUEs {
+	A_SEQUENCE_OF(RANAP_RAC_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_NewRAListofIdleModeUEs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_NewRAListofIdleModeUEs;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_NewRAListofIdleModeUEs_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_NonSearchingIndication.c b/src/ranap/RANAP_NonSearchingIndication.c
new file mode 100644
index 0000000..245a0e6
--- /dev/null
+++ b/src/ranap/RANAP_NonSearchingIndication.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_NonSearchingIndication.h"
+
+int
+RANAP_NonSearchingIndication_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_NonSearchingIndication_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_NonSearchingIndication_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_NonSearchingIndication_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_NonSearchingIndication_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NonSearchingIndication_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NonSearchingIndication_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_NonSearchingIndication_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_NonSearchingIndication_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NonSearchingIndication_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NonSearchingIndication_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_NonSearchingIndication_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_NonSearchingIndication_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NonSearchingIndication_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NonSearchingIndication_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_NonSearchingIndication_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_NonSearchingIndication_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_NonSearchingIndication_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_NonSearchingIndication_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_NonSearchingIndication_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_NonSearchingIndication_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_NonSearchingIndication_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_NonSearchingIndication_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 1,  1,  0l,  1l }	/* (0..1) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_NonSearchingIndication_value2enum_1[] = {
+	{ 0,	13,	"non-searching" },
+	{ 1,	9,	"searching" }
+};
+static const unsigned int asn_MAP_RANAP_NonSearchingIndication_enum2value_1[] = {
+	0,	/* non-searching(0) */
+	1	/* searching(1) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_NonSearchingIndication_specs_1 = {
+	asn_MAP_RANAP_NonSearchingIndication_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_NonSearchingIndication_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_NonSearchingIndication_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_NonSearchingIndication = {
+	"RANAP_NonSearchingIndication",
+	"RANAP_NonSearchingIndication",
+	RANAP_NonSearchingIndication_free,
+	RANAP_NonSearchingIndication_print,
+	RANAP_NonSearchingIndication_constraint,
+	RANAP_NonSearchingIndication_decode_ber,
+	RANAP_NonSearchingIndication_encode_der,
+	RANAP_NonSearchingIndication_decode_xer,
+	RANAP_NonSearchingIndication_encode_xer,
+	RANAP_NonSearchingIndication_decode_uper,
+	RANAP_NonSearchingIndication_encode_uper,
+	RANAP_NonSearchingIndication_decode_aper,
+	RANAP_NonSearchingIndication_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_NonSearchingIndication_tags_1,
+	sizeof(asn_DEF_RANAP_NonSearchingIndication_tags_1)
+		/sizeof(asn_DEF_RANAP_NonSearchingIndication_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_NonSearchingIndication_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_NonSearchingIndication_tags_1)
+		/sizeof(asn_DEF_RANAP_NonSearchingIndication_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_NonSearchingIndication_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_NonSearchingIndication_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_NonSearchingIndication.h b/src/ranap/RANAP_NonSearchingIndication.h
new file mode 100644
index 0000000..ea8d8bd
--- /dev/null
+++ b/src/ranap/RANAP_NonSearchingIndication.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_NonSearchingIndication_H_
+#define	_RANAP_NonSearchingIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_NonSearchingIndication {
+	RANAP_NonSearchingIndication_non_searching	= 0,
+	RANAP_NonSearchingIndication_searching	= 1
+} e_RANAP_NonSearchingIndication;
+
+/* RANAP_NonSearchingIndication */
+typedef long	 RANAP_NonSearchingIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_NonSearchingIndication;
+asn_struct_free_f RANAP_NonSearchingIndication_free;
+asn_struct_print_f RANAP_NonSearchingIndication_print;
+asn_constr_check_f RANAP_NonSearchingIndication_constraint;
+ber_type_decoder_f RANAP_NonSearchingIndication_decode_ber;
+der_type_encoder_f RANAP_NonSearchingIndication_encode_der;
+xer_type_decoder_f RANAP_NonSearchingIndication_decode_xer;
+xer_type_encoder_f RANAP_NonSearchingIndication_encode_xer;
+per_type_decoder_f RANAP_NonSearchingIndication_decode_uper;
+per_type_encoder_f RANAP_NonSearchingIndication_encode_uper;
+per_type_decoder_f RANAP_NonSearchingIndication_decode_aper;
+per_type_encoder_f RANAP_NonSearchingIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_NonSearchingIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_NotEmptyRAListofIdleModeUEs.c b/src/ranap/RANAP_NotEmptyRAListofIdleModeUEs.c
new file mode 100644
index 0000000..72a4e11
--- /dev/null
+++ b/src/ranap/RANAP_NotEmptyRAListofIdleModeUEs.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_NotEmptyRAListofIdleModeUEs.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_NotEmptyRAListofIdleModeUEs_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_NotEmptyRAListofIdleModeUEs, rAofIdleModeUEs),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RAofIdleModeUEs,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rAofIdleModeUEs"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_NotEmptyRAListofIdleModeUEs, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_NotEmptyRAListofIdleModeUEs_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_NotEmptyRAListofIdleModeUEs_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_NotEmptyRAListofIdleModeUEs_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rAofIdleModeUEs */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_NotEmptyRAListofIdleModeUEs_specs_1 = {
+	sizeof(struct RANAP_NotEmptyRAListofIdleModeUEs),
+	offsetof(struct RANAP_NotEmptyRAListofIdleModeUEs, _asn_ctx),
+	asn_MAP_RANAP_NotEmptyRAListofIdleModeUEs_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_NotEmptyRAListofIdleModeUEs_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_NotEmptyRAListofIdleModeUEs = {
+	"RANAP_NotEmptyRAListofIdleModeUEs",
+	"RANAP_NotEmptyRAListofIdleModeUEs",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_NotEmptyRAListofIdleModeUEs_tags_1,
+	sizeof(asn_DEF_RANAP_NotEmptyRAListofIdleModeUEs_tags_1)
+		/sizeof(asn_DEF_RANAP_NotEmptyRAListofIdleModeUEs_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_NotEmptyRAListofIdleModeUEs_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_NotEmptyRAListofIdleModeUEs_tags_1)
+		/sizeof(asn_DEF_RANAP_NotEmptyRAListofIdleModeUEs_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_NotEmptyRAListofIdleModeUEs_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_NotEmptyRAListofIdleModeUEs_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_NotEmptyRAListofIdleModeUEs.h b/src/ranap/RANAP_NotEmptyRAListofIdleModeUEs.h
new file mode 100644
index 0000000..2561166
--- /dev/null
+++ b/src/ranap/RANAP_NotEmptyRAListofIdleModeUEs.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_NotEmptyRAListofIdleModeUEs_H_
+#define	_RANAP_NotEmptyRAListofIdleModeUEs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_RAofIdleModeUEs.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_NotEmptyRAListofIdleModeUEs */
+typedef struct RANAP_NotEmptyRAListofIdleModeUEs {
+	RANAP_RAofIdleModeUEs_t	 rAofIdleModeUEs;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_NotEmptyRAListofIdleModeUEs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_NotEmptyRAListofIdleModeUEs;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_NotEmptyRAListofIdleModeUEs_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_NumberOfIuInstances.c b/src/ranap/RANAP_NumberOfIuInstances.c
new file mode 100644
index 0000000..3ce7ae0
--- /dev/null
+++ b/src/ranap/RANAP_NumberOfIuInstances.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_NumberOfIuInstances.h"
+
+int
+RANAP_NumberOfIuInstances_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 2l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_NumberOfIuInstances_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_NumberOfIuInstances_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_NumberOfIuInstances_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_NumberOfIuInstances_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NumberOfIuInstances_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NumberOfIuInstances_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_NumberOfIuInstances_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_NumberOfIuInstances_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NumberOfIuInstances_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NumberOfIuInstances_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_NumberOfIuInstances_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_NumberOfIuInstances_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NumberOfIuInstances_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NumberOfIuInstances_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_NumberOfIuInstances_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_NumberOfIuInstances_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_NumberOfIuInstances_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_NumberOfIuInstances_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_NumberOfIuInstances_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_NumberOfIuInstances_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_NumberOfIuInstances_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_NumberOfIuInstances_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (1..2) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_NumberOfIuInstances_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_NumberOfIuInstances = {
+	"RANAP_NumberOfIuInstances",
+	"RANAP_NumberOfIuInstances",
+	RANAP_NumberOfIuInstances_free,
+	RANAP_NumberOfIuInstances_print,
+	RANAP_NumberOfIuInstances_constraint,
+	RANAP_NumberOfIuInstances_decode_ber,
+	RANAP_NumberOfIuInstances_encode_der,
+	RANAP_NumberOfIuInstances_decode_xer,
+	RANAP_NumberOfIuInstances_encode_xer,
+	RANAP_NumberOfIuInstances_decode_uper,
+	RANAP_NumberOfIuInstances_encode_uper,
+	RANAP_NumberOfIuInstances_decode_aper,
+	RANAP_NumberOfIuInstances_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_NumberOfIuInstances_tags_1,
+	sizeof(asn_DEF_RANAP_NumberOfIuInstances_tags_1)
+		/sizeof(asn_DEF_RANAP_NumberOfIuInstances_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_NumberOfIuInstances_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_NumberOfIuInstances_tags_1)
+		/sizeof(asn_DEF_RANAP_NumberOfIuInstances_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_NumberOfIuInstances_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_NumberOfIuInstances.h b/src/ranap/RANAP_NumberOfIuInstances.h
new file mode 100644
index 0000000..c6c0ea3
--- /dev/null
+++ b/src/ranap/RANAP_NumberOfIuInstances.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_NumberOfIuInstances_H_
+#define	_RANAP_NumberOfIuInstances_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_NumberOfIuInstances */
+typedef long	 RANAP_NumberOfIuInstances_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_NumberOfIuInstances;
+asn_struct_free_f RANAP_NumberOfIuInstances_free;
+asn_struct_print_f RANAP_NumberOfIuInstances_print;
+asn_constr_check_f RANAP_NumberOfIuInstances_constraint;
+ber_type_decoder_f RANAP_NumberOfIuInstances_decode_ber;
+der_type_encoder_f RANAP_NumberOfIuInstances_encode_der;
+xer_type_decoder_f RANAP_NumberOfIuInstances_decode_xer;
+xer_type_encoder_f RANAP_NumberOfIuInstances_encode_xer;
+per_type_decoder_f RANAP_NumberOfIuInstances_decode_uper;
+per_type_encoder_f RANAP_NumberOfIuInstances_encode_uper;
+per_type_decoder_f RANAP_NumberOfIuInstances_decode_aper;
+per_type_encoder_f RANAP_NumberOfIuInstances_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_NumberOfIuInstances_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_NumberOfSteps.c b/src/ranap/RANAP_NumberOfSteps.c
new file mode 100644
index 0000000..cf67f2a
--- /dev/null
+++ b/src/ranap/RANAP_NumberOfSteps.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_NumberOfSteps.h"
+
+int
+RANAP_NumberOfSteps_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 16l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_NumberOfSteps_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_NumberOfSteps_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_NumberOfSteps_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_NumberOfSteps_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NumberOfSteps_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NumberOfSteps_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_NumberOfSteps_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_NumberOfSteps_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NumberOfSteps_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NumberOfSteps_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_NumberOfSteps_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_NumberOfSteps_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_NumberOfSteps_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_NumberOfSteps_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_NumberOfSteps_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_NumberOfSteps_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_NumberOfSteps_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_NumberOfSteps_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_NumberOfSteps_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_NumberOfSteps_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_NumberOfSteps_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_NumberOfSteps_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 4,  4,  1l,  16l }	/* (1..16) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_NumberOfSteps_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_NumberOfSteps = {
+	"RANAP_NumberOfSteps",
+	"RANAP_NumberOfSteps",
+	RANAP_NumberOfSteps_free,
+	RANAP_NumberOfSteps_print,
+	RANAP_NumberOfSteps_constraint,
+	RANAP_NumberOfSteps_decode_ber,
+	RANAP_NumberOfSteps_encode_der,
+	RANAP_NumberOfSteps_decode_xer,
+	RANAP_NumberOfSteps_encode_xer,
+	RANAP_NumberOfSteps_decode_uper,
+	RANAP_NumberOfSteps_encode_uper,
+	RANAP_NumberOfSteps_decode_aper,
+	RANAP_NumberOfSteps_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_NumberOfSteps_tags_1,
+	sizeof(asn_DEF_RANAP_NumberOfSteps_tags_1)
+		/sizeof(asn_DEF_RANAP_NumberOfSteps_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_NumberOfSteps_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_NumberOfSteps_tags_1)
+		/sizeof(asn_DEF_RANAP_NumberOfSteps_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_NumberOfSteps_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_NumberOfSteps.h b/src/ranap/RANAP_NumberOfSteps.h
new file mode 100644
index 0000000..5509f49
--- /dev/null
+++ b/src/ranap/RANAP_NumberOfSteps.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_NumberOfSteps_H_
+#define	_RANAP_NumberOfSteps_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_NumberOfSteps */
+typedef long	 RANAP_NumberOfSteps_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_NumberOfSteps;
+asn_struct_free_f RANAP_NumberOfSteps_free;
+asn_struct_print_f RANAP_NumberOfSteps_print;
+asn_constr_check_f RANAP_NumberOfSteps_constraint;
+ber_type_decoder_f RANAP_NumberOfSteps_decode_ber;
+der_type_encoder_f RANAP_NumberOfSteps_encode_der;
+xer_type_decoder_f RANAP_NumberOfSteps_decode_xer;
+xer_type_encoder_f RANAP_NumberOfSteps_encode_xer;
+per_type_decoder_f RANAP_NumberOfSteps_decode_uper;
+per_type_encoder_f RANAP_NumberOfSteps_encode_uper;
+per_type_decoder_f RANAP_NumberOfSteps_decode_aper;
+per_type_encoder_f RANAP_NumberOfSteps_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_NumberOfSteps_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_OMC-ID.c b/src/ranap/RANAP_OMC-ID.c
new file mode 100644
index 0000000..23a2a44
--- /dev/null
+++ b/src/ranap/RANAP_OMC-ID.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_OMC-ID.h"
+
+int
+RANAP_OMC_ID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 3l && size <= 22l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_OMC_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_OMC_ID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_OMC_ID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_OMC_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_OMC_ID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_OMC_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_OMC_ID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_OMC_ID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_OMC_ID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_OMC_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_OMC_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_OMC_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_OMC_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_OMC_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_OMC_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_OMC_ID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_OMC_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_OMC_ID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_OMC_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_OMC_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_OMC_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_OMC_ID_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 5,  5,  3l,  22l }	/* (SIZE(3..22)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_OMC_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_OMC_ID = {
+	"RANAP_OMC-ID",
+	"RANAP_OMC-ID",
+	RANAP_OMC_ID_free,
+	RANAP_OMC_ID_print,
+	RANAP_OMC_ID_constraint,
+	RANAP_OMC_ID_decode_ber,
+	RANAP_OMC_ID_encode_der,
+	RANAP_OMC_ID_decode_xer,
+	RANAP_OMC_ID_encode_xer,
+	RANAP_OMC_ID_decode_uper,
+	RANAP_OMC_ID_encode_uper,
+	RANAP_OMC_ID_decode_aper,
+	RANAP_OMC_ID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_OMC_ID_tags_1,
+	sizeof(asn_DEF_RANAP_OMC_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_OMC_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_OMC_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_OMC_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_OMC_ID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_OMC_ID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_OMC-ID.h b/src/ranap/RANAP_OMC-ID.h
new file mode 100644
index 0000000..042875a
--- /dev/null
+++ b/src/ranap/RANAP_OMC-ID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_OMC_ID_H_
+#define	_RANAP_OMC_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_OMC-ID */
+typedef OCTET_STRING_t	 RANAP_OMC_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_OMC_ID;
+asn_struct_free_f RANAP_OMC_ID_free;
+asn_struct_print_f RANAP_OMC_ID_print;
+asn_constr_check_f RANAP_OMC_ID_constraint;
+ber_type_decoder_f RANAP_OMC_ID_decode_ber;
+der_type_encoder_f RANAP_OMC_ID_encode_der;
+xer_type_decoder_f RANAP_OMC_ID_decode_xer;
+xer_type_encoder_f RANAP_OMC_ID_encode_xer;
+per_type_decoder_f RANAP_OMC_ID_decode_uper;
+per_type_encoder_f RANAP_OMC_ID_encode_uper;
+per_type_decoder_f RANAP_OMC_ID_decode_aper;
+per_type_encoder_f RANAP_OMC_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_OMC_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Offload-RAB-Parameters-APN.c b/src/ranap/RANAP_Offload-RAB-Parameters-APN.c
new file mode 100644
index 0000000..3d8c38a
--- /dev/null
+++ b/src/ranap/RANAP_Offload-RAB-Parameters-APN.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Offload-RAB-Parameters-APN.h"
+
+int
+RANAP_Offload_RAB_Parameters_APN_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 1l && size <= 255l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Offload_RAB_Parameters_APN_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_Offload_RAB_Parameters_APN_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Offload_RAB_Parameters_APN_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Offload_RAB_Parameters_APN_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Offload_RAB_Parameters_APN_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Offload_RAB_Parameters_APN_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Offload_RAB_Parameters_APN_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Offload_RAB_Parameters_APN_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Offload_RAB_Parameters_APN_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Offload_RAB_Parameters_APN_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Offload_RAB_Parameters_APN_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Offload_RAB_Parameters_APN_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Offload_RAB_Parameters_APN_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Offload_RAB_Parameters_APN_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Offload_RAB_Parameters_APN_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Offload_RAB_Parameters_APN_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Offload_RAB_Parameters_APN_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Offload_RAB_Parameters_APN_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Offload_RAB_Parameters_APN_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Offload_RAB_Parameters_APN_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Offload_RAB_Parameters_APN_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Offload_RAB_Parameters_APN_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 8,  8,  1l,  255l }	/* (SIZE(1..255)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Offload_RAB_Parameters_APN_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Offload_RAB_Parameters_APN = {
+	"RANAP_Offload-RAB-Parameters-APN",
+	"RANAP_Offload-RAB-Parameters-APN",
+	RANAP_Offload_RAB_Parameters_APN_free,
+	RANAP_Offload_RAB_Parameters_APN_print,
+	RANAP_Offload_RAB_Parameters_APN_constraint,
+	RANAP_Offload_RAB_Parameters_APN_decode_ber,
+	RANAP_Offload_RAB_Parameters_APN_encode_der,
+	RANAP_Offload_RAB_Parameters_APN_decode_xer,
+	RANAP_Offload_RAB_Parameters_APN_encode_xer,
+	RANAP_Offload_RAB_Parameters_APN_decode_uper,
+	RANAP_Offload_RAB_Parameters_APN_encode_uper,
+	RANAP_Offload_RAB_Parameters_APN_decode_aper,
+	RANAP_Offload_RAB_Parameters_APN_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Offload_RAB_Parameters_APN_tags_1,
+	sizeof(asn_DEF_RANAP_Offload_RAB_Parameters_APN_tags_1)
+		/sizeof(asn_DEF_RANAP_Offload_RAB_Parameters_APN_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Offload_RAB_Parameters_APN_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Offload_RAB_Parameters_APN_tags_1)
+		/sizeof(asn_DEF_RANAP_Offload_RAB_Parameters_APN_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Offload_RAB_Parameters_APN_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_Offload-RAB-Parameters-APN.h b/src/ranap/RANAP_Offload-RAB-Parameters-APN.h
new file mode 100644
index 0000000..ba1bb02
--- /dev/null
+++ b/src/ranap/RANAP_Offload-RAB-Parameters-APN.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Offload_RAB_Parameters_APN_H_
+#define	_RANAP_Offload_RAB_Parameters_APN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Offload-RAB-Parameters-APN */
+typedef OCTET_STRING_t	 RANAP_Offload_RAB_Parameters_APN_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Offload_RAB_Parameters_APN;
+asn_struct_free_f RANAP_Offload_RAB_Parameters_APN_free;
+asn_struct_print_f RANAP_Offload_RAB_Parameters_APN_print;
+asn_constr_check_f RANAP_Offload_RAB_Parameters_APN_constraint;
+ber_type_decoder_f RANAP_Offload_RAB_Parameters_APN_decode_ber;
+der_type_encoder_f RANAP_Offload_RAB_Parameters_APN_encode_der;
+xer_type_decoder_f RANAP_Offload_RAB_Parameters_APN_decode_xer;
+xer_type_encoder_f RANAP_Offload_RAB_Parameters_APN_encode_xer;
+per_type_decoder_f RANAP_Offload_RAB_Parameters_APN_decode_uper;
+per_type_encoder_f RANAP_Offload_RAB_Parameters_APN_encode_uper;
+per_type_decoder_f RANAP_Offload_RAB_Parameters_APN_decode_aper;
+per_type_encoder_f RANAP_Offload_RAB_Parameters_APN_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Offload_RAB_Parameters_APN_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Offload-RAB-Parameters-ChargingCharacteristics.c b/src/ranap/RANAP_Offload-RAB-Parameters-ChargingCharacteristics.c
new file mode 100644
index 0000000..d7d3213
--- /dev/null
+++ b/src/ranap/RANAP_Offload-RAB-Parameters-ChargingCharacteristics.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Offload-RAB-Parameters-ChargingCharacteristics.h"
+
+int
+RANAP_Offload_RAB_Parameters_ChargingCharacteristics_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 2l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Offload_RAB_Parameters_ChargingCharacteristics_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_Offload_RAB_Parameters_ChargingCharacteristics_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Offload_RAB_Parameters_ChargingCharacteristics_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Offload_RAB_Parameters_ChargingCharacteristics_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Offload_RAB_Parameters_ChargingCharacteristics_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Offload_RAB_Parameters_ChargingCharacteristics_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Offload_RAB_Parameters_ChargingCharacteristics_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Offload_RAB_Parameters_ChargingCharacteristics_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Offload_RAB_Parameters_ChargingCharacteristics_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Offload_RAB_Parameters_ChargingCharacteristics_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Offload_RAB_Parameters_ChargingCharacteristics_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Offload_RAB_Parameters_ChargingCharacteristics_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  2l,  2l }	/* (SIZE(2..2)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Offload_RAB_Parameters_ChargingCharacteristics_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Offload_RAB_Parameters_ChargingCharacteristics = {
+	"RANAP_Offload-RAB-Parameters-ChargingCharacteristics",
+	"RANAP_Offload-RAB-Parameters-ChargingCharacteristics",
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_free,
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_print,
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_constraint,
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_decode_ber,
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_encode_der,
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_decode_xer,
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_encode_xer,
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_decode_uper,
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_encode_uper,
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_decode_aper,
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Offload_RAB_Parameters_ChargingCharacteristics_tags_1,
+	sizeof(asn_DEF_RANAP_Offload_RAB_Parameters_ChargingCharacteristics_tags_1)
+		/sizeof(asn_DEF_RANAP_Offload_RAB_Parameters_ChargingCharacteristics_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Offload_RAB_Parameters_ChargingCharacteristics_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Offload_RAB_Parameters_ChargingCharacteristics_tags_1)
+		/sizeof(asn_DEF_RANAP_Offload_RAB_Parameters_ChargingCharacteristics_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Offload_RAB_Parameters_ChargingCharacteristics_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_Offload-RAB-Parameters-ChargingCharacteristics.h b/src/ranap/RANAP_Offload-RAB-Parameters-ChargingCharacteristics.h
new file mode 100644
index 0000000..90a89ff
--- /dev/null
+++ b/src/ranap/RANAP_Offload-RAB-Parameters-ChargingCharacteristics.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Offload_RAB_Parameters_ChargingCharacteristics_H_
+#define	_RANAP_Offload_RAB_Parameters_ChargingCharacteristics_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Offload-RAB-Parameters-ChargingCharacteristics */
+typedef OCTET_STRING_t	 RANAP_Offload_RAB_Parameters_ChargingCharacteristics_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Offload_RAB_Parameters_ChargingCharacteristics;
+asn_struct_free_f RANAP_Offload_RAB_Parameters_ChargingCharacteristics_free;
+asn_struct_print_f RANAP_Offload_RAB_Parameters_ChargingCharacteristics_print;
+asn_constr_check_f RANAP_Offload_RAB_Parameters_ChargingCharacteristics_constraint;
+ber_type_decoder_f RANAP_Offload_RAB_Parameters_ChargingCharacteristics_decode_ber;
+der_type_encoder_f RANAP_Offload_RAB_Parameters_ChargingCharacteristics_encode_der;
+xer_type_decoder_f RANAP_Offload_RAB_Parameters_ChargingCharacteristics_decode_xer;
+xer_type_encoder_f RANAP_Offload_RAB_Parameters_ChargingCharacteristics_encode_xer;
+per_type_decoder_f RANAP_Offload_RAB_Parameters_ChargingCharacteristics_decode_uper;
+per_type_encoder_f RANAP_Offload_RAB_Parameters_ChargingCharacteristics_encode_uper;
+per_type_decoder_f RANAP_Offload_RAB_Parameters_ChargingCharacteristics_decode_aper;
+per_type_encoder_f RANAP_Offload_RAB_Parameters_ChargingCharacteristics_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Offload_RAB_Parameters_ChargingCharacteristics_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Offload-RAB-Parameters.c b/src/ranap/RANAP_Offload-RAB-Parameters.c
new file mode 100644
index 0000000..f4c0fab
--- /dev/null
+++ b/src/ranap/RANAP_Offload-RAB-Parameters.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Offload-RAB-Parameters.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_Offload_RAB_Parameters_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Offload_RAB_Parameters, accessPointName),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Offload_RAB_Parameters_APN,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"accessPointName"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Offload_RAB_Parameters, chargingCharacteristics),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Offload_RAB_Parameters_ChargingCharacteristics,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"chargingCharacteristics"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_Offload_RAB_Parameters, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_Offload_RAB_Parameters_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_Offload_RAB_Parameters_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Offload_RAB_Parameters_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* accessPointName */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* chargingCharacteristics */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Offload_RAB_Parameters_specs_1 = {
+	sizeof(struct RANAP_Offload_RAB_Parameters),
+	offsetof(struct RANAP_Offload_RAB_Parameters, _asn_ctx),
+	asn_MAP_RANAP_Offload_RAB_Parameters_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_Offload_RAB_Parameters_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Offload_RAB_Parameters = {
+	"RANAP_Offload-RAB-Parameters",
+	"RANAP_Offload-RAB-Parameters",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Offload_RAB_Parameters_tags_1,
+	sizeof(asn_DEF_RANAP_Offload_RAB_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_Offload_RAB_Parameters_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Offload_RAB_Parameters_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Offload_RAB_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_Offload_RAB_Parameters_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Offload_RAB_Parameters_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_Offload_RAB_Parameters_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Offload-RAB-Parameters.h b/src/ranap/RANAP_Offload-RAB-Parameters.h
new file mode 100644
index 0000000..26c528f
--- /dev/null
+++ b/src/ranap/RANAP_Offload-RAB-Parameters.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Offload_RAB_Parameters_H_
+#define	_RANAP_Offload_RAB_Parameters_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Offload-RAB-Parameters-APN.h"
+#include "RANAP_Offload-RAB-Parameters-ChargingCharacteristics.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Offload-RAB-Parameters */
+typedef struct RANAP_Offload_RAB_Parameters {
+	RANAP_Offload_RAB_Parameters_APN_t	 accessPointName;
+	RANAP_Offload_RAB_Parameters_ChargingCharacteristics_t	 chargingCharacteristics;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Offload_RAB_Parameters_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Offload_RAB_Parameters;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Offload_RAB_Parameters_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_OldBSS-ToNewBSS-Information.c b/src/ranap/RANAP_OldBSS-ToNewBSS-Information.c
new file mode 100644
index 0000000..11098f8
--- /dev/null
+++ b/src/ranap/RANAP_OldBSS-ToNewBSS-Information.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_OldBSS-ToNewBSS-Information.h"
+
+int
+RANAP_OldBSS_ToNewBSS_Information_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_OldBSS_ToNewBSS_Information_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_OldBSS_ToNewBSS_Information_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_OldBSS_ToNewBSS_Information_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_OldBSS_ToNewBSS_Information_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_OldBSS_ToNewBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_OldBSS_ToNewBSS_Information_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_OldBSS_ToNewBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_OldBSS_ToNewBSS_Information_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_OldBSS_ToNewBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_OldBSS_ToNewBSS_Information_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_OldBSS_ToNewBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_OldBSS_ToNewBSS_Information_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_OldBSS_ToNewBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_OldBSS_ToNewBSS_Information_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_OldBSS_ToNewBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_OldBSS_ToNewBSS_Information_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_OldBSS_ToNewBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_OldBSS_ToNewBSS_Information_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_OldBSS_ToNewBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_OldBSS_ToNewBSS_Information_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_OldBSS_ToNewBSS_Information_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_OldBSS_ToNewBSS_Information_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_OldBSS_ToNewBSS_Information = {
+	"RANAP_OldBSS-ToNewBSS-Information",
+	"RANAP_OldBSS-ToNewBSS-Information",
+	RANAP_OldBSS_ToNewBSS_Information_free,
+	RANAP_OldBSS_ToNewBSS_Information_print,
+	RANAP_OldBSS_ToNewBSS_Information_constraint,
+	RANAP_OldBSS_ToNewBSS_Information_decode_ber,
+	RANAP_OldBSS_ToNewBSS_Information_encode_der,
+	RANAP_OldBSS_ToNewBSS_Information_decode_xer,
+	RANAP_OldBSS_ToNewBSS_Information_encode_xer,
+	RANAP_OldBSS_ToNewBSS_Information_decode_uper,
+	RANAP_OldBSS_ToNewBSS_Information_encode_uper,
+	RANAP_OldBSS_ToNewBSS_Information_decode_aper,
+	RANAP_OldBSS_ToNewBSS_Information_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_OldBSS_ToNewBSS_Information_tags_1,
+	sizeof(asn_DEF_RANAP_OldBSS_ToNewBSS_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_OldBSS_ToNewBSS_Information_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_OldBSS_ToNewBSS_Information_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_OldBSS_ToNewBSS_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_OldBSS_ToNewBSS_Information_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_OldBSS-ToNewBSS-Information.h b/src/ranap/RANAP_OldBSS-ToNewBSS-Information.h
new file mode 100644
index 0000000..f44e01c
--- /dev/null
+++ b/src/ranap/RANAP_OldBSS-ToNewBSS-Information.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_OldBSS_ToNewBSS_Information_H_
+#define	_RANAP_OldBSS_ToNewBSS_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_OldBSS-ToNewBSS-Information */
+typedef OCTET_STRING_t	 RANAP_OldBSS_ToNewBSS_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_OldBSS_ToNewBSS_Information;
+asn_struct_free_f RANAP_OldBSS_ToNewBSS_Information_free;
+asn_struct_print_f RANAP_OldBSS_ToNewBSS_Information_print;
+asn_constr_check_f RANAP_OldBSS_ToNewBSS_Information_constraint;
+ber_type_decoder_f RANAP_OldBSS_ToNewBSS_Information_decode_ber;
+der_type_encoder_f RANAP_OldBSS_ToNewBSS_Information_encode_der;
+xer_type_decoder_f RANAP_OldBSS_ToNewBSS_Information_decode_xer;
+xer_type_encoder_f RANAP_OldBSS_ToNewBSS_Information_encode_xer;
+per_type_decoder_f RANAP_OldBSS_ToNewBSS_Information_decode_uper;
+per_type_encoder_f RANAP_OldBSS_ToNewBSS_Information_encode_uper;
+per_type_decoder_f RANAP_OldBSS_ToNewBSS_Information_decode_aper;
+per_type_encoder_f RANAP_OldBSS_ToNewBSS_Information_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_OldBSS_ToNewBSS_Information_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Out-Of-UTRAN.c b/src/ranap/RANAP_Out-Of-UTRAN.c
new file mode 100644
index 0000000..617fef9
--- /dev/null
+++ b/src/ranap/RANAP_Out-Of-UTRAN.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Out-Of-UTRAN.h"
+
+int
+RANAP_Out_Of_UTRAN_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Out_Of_UTRAN_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_Out_Of_UTRAN_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Out_Of_UTRAN_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Out_Of_UTRAN_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Out_Of_UTRAN_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Out_Of_UTRAN_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Out_Of_UTRAN_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Out_Of_UTRAN_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Out_Of_UTRAN_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Out_Of_UTRAN_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Out_Of_UTRAN_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Out_Of_UTRAN_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Out_Of_UTRAN_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Out_Of_UTRAN_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Out_Of_UTRAN_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Out_Of_UTRAN_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Out_Of_UTRAN_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Out_Of_UTRAN_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Out_Of_UTRAN_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Out_Of_UTRAN_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Out_Of_UTRAN_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Out_Of_UTRAN_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_Out_Of_UTRAN_value2enum_1[] = {
+	{ 0,	26,	"cell-reselection-to-EUTRAN" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_Out_Of_UTRAN_enum2value_1[] = {
+	0	/* cell-reselection-to-EUTRAN(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_Out_Of_UTRAN_specs_1 = {
+	asn_MAP_RANAP_Out_Of_UTRAN_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_Out_Of_UTRAN_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Out_Of_UTRAN_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Out_Of_UTRAN = {
+	"RANAP_Out-Of-UTRAN",
+	"RANAP_Out-Of-UTRAN",
+	RANAP_Out_Of_UTRAN_free,
+	RANAP_Out_Of_UTRAN_print,
+	RANAP_Out_Of_UTRAN_constraint,
+	RANAP_Out_Of_UTRAN_decode_ber,
+	RANAP_Out_Of_UTRAN_encode_der,
+	RANAP_Out_Of_UTRAN_decode_xer,
+	RANAP_Out_Of_UTRAN_encode_xer,
+	RANAP_Out_Of_UTRAN_decode_uper,
+	RANAP_Out_Of_UTRAN_encode_uper,
+	RANAP_Out_Of_UTRAN_decode_aper,
+	RANAP_Out_Of_UTRAN_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Out_Of_UTRAN_tags_1,
+	sizeof(asn_DEF_RANAP_Out_Of_UTRAN_tags_1)
+		/sizeof(asn_DEF_RANAP_Out_Of_UTRAN_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Out_Of_UTRAN_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Out_Of_UTRAN_tags_1)
+		/sizeof(asn_DEF_RANAP_Out_Of_UTRAN_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Out_Of_UTRAN_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_Out_Of_UTRAN_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Out-Of-UTRAN.h b/src/ranap/RANAP_Out-Of-UTRAN.h
new file mode 100644
index 0000000..fefb72d
--- /dev/null
+++ b/src/ranap/RANAP_Out-Of-UTRAN.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Out_Of_UTRAN_H_
+#define	_RANAP_Out_Of_UTRAN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_Out_Of_UTRAN {
+	RANAP_Out_Of_UTRAN_cell_reselection_to_EUTRAN	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_Out_Of_UTRAN;
+
+/* RANAP_Out-Of-UTRAN */
+typedef long	 RANAP_Out_Of_UTRAN_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Out_Of_UTRAN;
+asn_struct_free_f RANAP_Out_Of_UTRAN_free;
+asn_struct_print_f RANAP_Out_Of_UTRAN_print;
+asn_constr_check_f RANAP_Out_Of_UTRAN_constraint;
+ber_type_decoder_f RANAP_Out_Of_UTRAN_decode_ber;
+der_type_encoder_f RANAP_Out_Of_UTRAN_encode_der;
+xer_type_decoder_f RANAP_Out_Of_UTRAN_decode_xer;
+xer_type_encoder_f RANAP_Out_Of_UTRAN_encode_xer;
+per_type_decoder_f RANAP_Out_Of_UTRAN_decode_uper;
+per_type_encoder_f RANAP_Out_Of_UTRAN_encode_uper;
+per_type_decoder_f RANAP_Out_Of_UTRAN_decode_aper;
+per_type_encoder_f RANAP_Out_Of_UTRAN_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Out_Of_UTRAN_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Outcome.c b/src/ranap/RANAP_Outcome.c
new file mode 100644
index 0000000..578fa6a
--- /dev/null
+++ b/src/ranap/RANAP_Outcome.c
@@ -0,0 +1,81 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_Outcome.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_Outcome_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Outcome, procedureCode),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ProcedureCode,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"procedureCode"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Outcome, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Criticality,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"criticality"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Outcome, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ANY,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Outcome_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Outcome_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Outcome_specs_1 = {
+	sizeof(struct RANAP_Outcome),
+	offsetof(struct RANAP_Outcome, _asn_ctx),
+	asn_MAP_RANAP_Outcome_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Outcome = {
+	"RANAP_Outcome",
+	"RANAP_Outcome",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Outcome_tags_1,
+	sizeof(asn_DEF_RANAP_Outcome_tags_1)
+		/sizeof(asn_DEF_RANAP_Outcome_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Outcome_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Outcome_tags_1)
+		/sizeof(asn_DEF_RANAP_Outcome_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Outcome_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_Outcome_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Outcome.h b/src/ranap/RANAP_Outcome.h
new file mode 100644
index 0000000..1c757e0
--- /dev/null
+++ b/src/ranap/RANAP_Outcome.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_Outcome_H_
+#define	_RANAP_Outcome_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ProcedureCode.h"
+#include "RANAP_Criticality.h"
+#include <ANY.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Outcome */
+typedef struct RANAP_Outcome {
+	RANAP_ProcedureCode_t	 procedureCode;
+	RANAP_Criticality_t	 criticality;
+	ANY_t	 value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Outcome_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Outcome;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Outcome_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Overload.c b/src/ranap/RANAP_Overload.c
new file mode 100644
index 0000000..2313ee6
--- /dev/null
+++ b/src/ranap/RANAP_Overload.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_Overload.h"
+
+static int
+memb_overload_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_overload_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_overload_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_overload_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_overload_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_overload_ies_specs_2 = {
+	sizeof(struct overload_ies),
+	offsetof(struct overload_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_overload_ies_2 = {
+	"overload-ies",
+	"overload-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_overload_ies_tags_2,
+	sizeof(asn_DEF_overload_ies_tags_2)
+		/sizeof(asn_DEF_overload_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_overload_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_overload_ies_tags_2)
+		/sizeof(asn_DEF_overload_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_overload_ies_constr_2,
+	asn_MBR_overload_ies_2,
+	1,	/* Single element */
+	&asn_SPC_overload_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_Overload_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Overload, overload_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_overload_ies_2,
+		memb_overload_ies_constraint_1,
+		&asn_PER_memb_overload_ies_constr_2,
+		0,
+		"overload-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Overload_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Overload_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* overload-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Overload_specs_1 = {
+	sizeof(struct RANAP_Overload),
+	offsetof(struct RANAP_Overload, _asn_ctx),
+	asn_MAP_RANAP_Overload_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Overload = {
+	"RANAP_Overload",
+	"RANAP_Overload",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Overload_tags_1,
+	sizeof(asn_DEF_RANAP_Overload_tags_1)
+		/sizeof(asn_DEF_RANAP_Overload_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Overload_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Overload_tags_1)
+		/sizeof(asn_DEF_RANAP_Overload_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Overload_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_Overload_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Overload.h b/src/ranap/RANAP_Overload.h
new file mode 100644
index 0000000..856e3ec
--- /dev/null
+++ b/src/ranap/RANAP_Overload.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_Overload_H_
+#define	_RANAP_Overload_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Overload */
+typedef struct RANAP_Overload {
+	struct overload_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} overload_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Overload_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Overload;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Overload_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_P-TMSI.c b/src/ranap/RANAP_P-TMSI.c
new file mode 100644
index 0000000..ea56cbd
--- /dev/null
+++ b/src/ranap/RANAP_P-TMSI.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_P-TMSI.h"
+
+int
+RANAP_P_TMSI_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 4l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_P_TMSI_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_P_TMSI_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_P_TMSI_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_P_TMSI_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_P_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_P_TMSI_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_P_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_P_TMSI_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_P_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_P_TMSI_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_P_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_P_TMSI_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_P_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_P_TMSI_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_P_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_P_TMSI_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_P_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_P_TMSI_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_P_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_P_TMSI_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_P_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_P_TMSI_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  4l,  4l }	/* (SIZE(4..4)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_P_TMSI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_P_TMSI = {
+	"RANAP_P-TMSI",
+	"RANAP_P-TMSI",
+	RANAP_P_TMSI_free,
+	RANAP_P_TMSI_print,
+	RANAP_P_TMSI_constraint,
+	RANAP_P_TMSI_decode_ber,
+	RANAP_P_TMSI_encode_der,
+	RANAP_P_TMSI_decode_xer,
+	RANAP_P_TMSI_encode_xer,
+	RANAP_P_TMSI_decode_uper,
+	RANAP_P_TMSI_encode_uper,
+	RANAP_P_TMSI_decode_aper,
+	RANAP_P_TMSI_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_P_TMSI_tags_1,
+	sizeof(asn_DEF_RANAP_P_TMSI_tags_1)
+		/sizeof(asn_DEF_RANAP_P_TMSI_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_P_TMSI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_P_TMSI_tags_1)
+		/sizeof(asn_DEF_RANAP_P_TMSI_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_P_TMSI_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_P-TMSI.h b/src/ranap/RANAP_P-TMSI.h
new file mode 100644
index 0000000..800a4e2
--- /dev/null
+++ b/src/ranap/RANAP_P-TMSI.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_P_TMSI_H_
+#define	_RANAP_P_TMSI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_P-TMSI */
+typedef OCTET_STRING_t	 RANAP_P_TMSI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_P_TMSI;
+asn_struct_free_f RANAP_P_TMSI_free;
+asn_struct_print_f RANAP_P_TMSI_print;
+asn_constr_check_f RANAP_P_TMSI_constraint;
+ber_type_decoder_f RANAP_P_TMSI_decode_ber;
+der_type_encoder_f RANAP_P_TMSI_encode_der;
+xer_type_decoder_f RANAP_P_TMSI_decode_xer;
+xer_type_encoder_f RANAP_P_TMSI_encode_xer;
+per_type_decoder_f RANAP_P_TMSI_decode_uper;
+per_type_encoder_f RANAP_P_TMSI_encode_uper;
+per_type_decoder_f RANAP_P_TMSI_decode_aper;
+per_type_encoder_f RANAP_P_TMSI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_P_TMSI_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PDP-Type-extension.c b/src/ranap/RANAP_PDP-Type-extension.c
new file mode 100644
index 0000000..81e775e
--- /dev/null
+++ b/src/ranap/RANAP_PDP-Type-extension.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PDP-Type-extension.h"
+
+int
+RANAP_PDP_Type_extension_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_PDP_Type_extension_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_PDP_Type_extension_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_PDP_Type_extension_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_PDP_Type_extension_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PDP_Type_extension_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PDP_Type_extension_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_PDP_Type_extension_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_PDP_Type_extension_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PDP_Type_extension_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PDP_Type_extension_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_PDP_Type_extension_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_PDP_Type_extension_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PDP_Type_extension_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PDP_Type_extension_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PDP_Type_extension_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_PDP_Type_extension_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PDP_Type_extension_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_PDP_Type_extension_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PDP_Type_extension_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_PDP_Type_extension_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PDP_Type_extension_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_PDP_Type_extension_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_PDP_Type_extension_value2enum_1[] = {
+	{ 0,	13,	"ipv4-and-ipv6" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_PDP_Type_extension_enum2value_1[] = {
+	0	/* ipv4-and-ipv6(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_PDP_Type_extension_specs_1 = {
+	asn_MAP_RANAP_PDP_Type_extension_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_PDP_Type_extension_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_PDP_Type_extension_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PDP_Type_extension = {
+	"RANAP_PDP-Type-extension",
+	"RANAP_PDP-Type-extension",
+	RANAP_PDP_Type_extension_free,
+	RANAP_PDP_Type_extension_print,
+	RANAP_PDP_Type_extension_constraint,
+	RANAP_PDP_Type_extension_decode_ber,
+	RANAP_PDP_Type_extension_encode_der,
+	RANAP_PDP_Type_extension_decode_xer,
+	RANAP_PDP_Type_extension_encode_xer,
+	RANAP_PDP_Type_extension_decode_uper,
+	RANAP_PDP_Type_extension_encode_uper,
+	RANAP_PDP_Type_extension_decode_aper,
+	RANAP_PDP_Type_extension_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PDP_Type_extension_tags_1,
+	sizeof(asn_DEF_RANAP_PDP_Type_extension_tags_1)
+		/sizeof(asn_DEF_RANAP_PDP_Type_extension_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PDP_Type_extension_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PDP_Type_extension_tags_1)
+		/sizeof(asn_DEF_RANAP_PDP_Type_extension_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_PDP_Type_extension_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_PDP_Type_extension_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PDP-Type-extension.h b/src/ranap/RANAP_PDP-Type-extension.h
new file mode 100644
index 0000000..7f13a18
--- /dev/null
+++ b/src/ranap/RANAP_PDP-Type-extension.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PDP_Type_extension_H_
+#define	_RANAP_PDP_Type_extension_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_PDP_Type_extension {
+	RANAP_PDP_Type_extension_ipv4_and_ipv6	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_PDP_Type_extension;
+
+/* RANAP_PDP-Type-extension */
+typedef long	 RANAP_PDP_Type_extension_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PDP_Type_extension;
+asn_struct_free_f RANAP_PDP_Type_extension_free;
+asn_struct_print_f RANAP_PDP_Type_extension_print;
+asn_constr_check_f RANAP_PDP_Type_extension_constraint;
+ber_type_decoder_f RANAP_PDP_Type_extension_decode_ber;
+der_type_encoder_f RANAP_PDP_Type_extension_encode_der;
+xer_type_decoder_f RANAP_PDP_Type_extension_decode_xer;
+xer_type_encoder_f RANAP_PDP_Type_extension_encode_xer;
+per_type_decoder_f RANAP_PDP_Type_extension_decode_uper;
+per_type_encoder_f RANAP_PDP_Type_extension_encode_uper;
+per_type_decoder_f RANAP_PDP_Type_extension_decode_aper;
+per_type_encoder_f RANAP_PDP_Type_extension_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PDP_Type_extension_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PDP-Type.c b/src/ranap/RANAP_PDP-Type.c
new file mode 100644
index 0000000..259f7a9
--- /dev/null
+++ b/src/ranap/RANAP_PDP-Type.c
@@ -0,0 +1,173 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PDP-Type.h"
+
+int
+RANAP_PDP_Type_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_PDP_Type_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_PDP_Type_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_PDP_Type_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_PDP_Type_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PDP_Type_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PDP_Type_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_PDP_Type_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_PDP_Type_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PDP_Type_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PDP_Type_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_PDP_Type_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_PDP_Type_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PDP_Type_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PDP_Type_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PDP_Type_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_PDP_Type_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PDP_Type_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_PDP_Type_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PDP_Type_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_PDP_Type_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PDP_Type_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_PDP_Type_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0l,  4l }	/* (0..4,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_PDP_Type_value2enum_1[] = {
+	{ 0,	5,	"empty" },
+	{ 1,	3,	"ppp" },
+	{ 2,	9,	"osp-ihoss" },
+	{ 3,	4,	"ipv4" },
+	{ 4,	4,	"ipv6" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_PDP_Type_enum2value_1[] = {
+	0,	/* empty(0) */
+	3,	/* ipv4(3) */
+	4,	/* ipv6(4) */
+	2,	/* osp-ihoss(2) */
+	1	/* ppp(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_PDP_Type_specs_1 = {
+	asn_MAP_RANAP_PDP_Type_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_PDP_Type_enum2value_1,	/* N => "tag"; sorted by N */
+	5,	/* Number of elements in the maps */
+	6,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_PDP_Type_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PDP_Type = {
+	"RANAP_PDP-Type",
+	"RANAP_PDP-Type",
+	RANAP_PDP_Type_free,
+	RANAP_PDP_Type_print,
+	RANAP_PDP_Type_constraint,
+	RANAP_PDP_Type_decode_ber,
+	RANAP_PDP_Type_encode_der,
+	RANAP_PDP_Type_decode_xer,
+	RANAP_PDP_Type_encode_xer,
+	RANAP_PDP_Type_decode_uper,
+	RANAP_PDP_Type_encode_uper,
+	RANAP_PDP_Type_decode_aper,
+	RANAP_PDP_Type_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PDP_Type_tags_1,
+	sizeof(asn_DEF_RANAP_PDP_Type_tags_1)
+		/sizeof(asn_DEF_RANAP_PDP_Type_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PDP_Type_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PDP_Type_tags_1)
+		/sizeof(asn_DEF_RANAP_PDP_Type_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_PDP_Type_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_PDP_Type_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PDP-Type.h b/src/ranap/RANAP_PDP-Type.h
new file mode 100644
index 0000000..b1445a2
--- /dev/null
+++ b/src/ranap/RANAP_PDP-Type.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PDP_Type_H_
+#define	_RANAP_PDP_Type_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_PDP_Type {
+	RANAP_PDP_Type_empty	= 0,
+	RANAP_PDP_Type_ppp	= 1,
+	RANAP_PDP_Type_osp_ihoss	= 2,
+	RANAP_PDP_Type_ipv4	= 3,
+	RANAP_PDP_Type_ipv6	= 4
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_PDP_Type;
+
+/* RANAP_PDP-Type */
+typedef long	 RANAP_PDP_Type_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PDP_Type;
+asn_struct_free_f RANAP_PDP_Type_free;
+asn_struct_print_f RANAP_PDP_Type_print;
+asn_constr_check_f RANAP_PDP_Type_constraint;
+ber_type_decoder_f RANAP_PDP_Type_decode_ber;
+der_type_encoder_f RANAP_PDP_Type_encode_der;
+xer_type_decoder_f RANAP_PDP_Type_decode_xer;
+xer_type_encoder_f RANAP_PDP_Type_encode_xer;
+per_type_decoder_f RANAP_PDP_Type_decode_uper;
+per_type_encoder_f RANAP_PDP_Type_encode_uper;
+per_type_decoder_f RANAP_PDP_Type_decode_aper;
+per_type_encoder_f RANAP_PDP_Type_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PDP_Type_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PDP-TypeInformation-extension.c b/src/ranap/RANAP_PDP-TypeInformation-extension.c
new file mode 100644
index 0000000..2e55308
--- /dev/null
+++ b/src/ranap/RANAP_PDP-TypeInformation-extension.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PDP-TypeInformation-extension.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_PDP_TypeInformation_extension_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_PDP_TypeInformation_extension_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_PDP_Type_extension,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_PDP_TypeInformation_extension_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_PDP_TypeInformation_extension_specs_1 = {
+	sizeof(struct RANAP_PDP_TypeInformation_extension),
+	offsetof(struct RANAP_PDP_TypeInformation_extension, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PDP_TypeInformation_extension = {
+	"RANAP_PDP-TypeInformation-extension",
+	"RANAP_PDP-TypeInformation-extension",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PDP_TypeInformation_extension_tags_1,
+	sizeof(asn_DEF_RANAP_PDP_TypeInformation_extension_tags_1)
+		/sizeof(asn_DEF_RANAP_PDP_TypeInformation_extension_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PDP_TypeInformation_extension_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PDP_TypeInformation_extension_tags_1)
+		/sizeof(asn_DEF_RANAP_PDP_TypeInformation_extension_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_PDP_TypeInformation_extension_constr_1,
+	asn_MBR_RANAP_PDP_TypeInformation_extension_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_PDP_TypeInformation_extension_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PDP-TypeInformation-extension.h b/src/ranap/RANAP_PDP-TypeInformation-extension.h
new file mode 100644
index 0000000..fc9e688
--- /dev/null
+++ b/src/ranap/RANAP_PDP-TypeInformation-extension.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PDP_TypeInformation_extension_H_
+#define	_RANAP_PDP_TypeInformation_extension_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PDP-Type-extension.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_PDP-TypeInformation-extension */
+typedef struct RANAP_PDP_TypeInformation_extension {
+	A_SEQUENCE_OF(RANAP_PDP_Type_extension_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_PDP_TypeInformation_extension_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PDP_TypeInformation_extension;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PDP_TypeInformation_extension_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PDP-TypeInformation.c b/src/ranap/RANAP_PDP-TypeInformation.c
new file mode 100644
index 0000000..236520f
--- /dev/null
+++ b/src/ranap/RANAP_PDP-TypeInformation.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PDP-TypeInformation.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_PDP_TypeInformation_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_PDP_TypeInformation_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_PDP_Type,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_PDP_TypeInformation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_PDP_TypeInformation_specs_1 = {
+	sizeof(struct RANAP_PDP_TypeInformation),
+	offsetof(struct RANAP_PDP_TypeInformation, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PDP_TypeInformation = {
+	"RANAP_PDP-TypeInformation",
+	"RANAP_PDP-TypeInformation",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PDP_TypeInformation_tags_1,
+	sizeof(asn_DEF_RANAP_PDP_TypeInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_PDP_TypeInformation_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PDP_TypeInformation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PDP_TypeInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_PDP_TypeInformation_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_PDP_TypeInformation_constr_1,
+	asn_MBR_RANAP_PDP_TypeInformation_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_PDP_TypeInformation_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PDP-TypeInformation.h b/src/ranap/RANAP_PDP-TypeInformation.h
new file mode 100644
index 0000000..f5e9076
--- /dev/null
+++ b/src/ranap/RANAP_PDP-TypeInformation.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PDP_TypeInformation_H_
+#define	_RANAP_PDP_TypeInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PDP-Type.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_PDP-TypeInformation */
+typedef struct RANAP_PDP_TypeInformation {
+	A_SEQUENCE_OF(RANAP_PDP_Type_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_PDP_TypeInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PDP_TypeInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PDP_TypeInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PDUType14FrameSequenceNumber.c b/src/ranap/RANAP_PDUType14FrameSequenceNumber.c
new file mode 100644
index 0000000..f82df49
--- /dev/null
+++ b/src/ranap/RANAP_PDUType14FrameSequenceNumber.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PDUType14FrameSequenceNumber.h"
+
+int
+RANAP_PDUType14FrameSequenceNumber_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 3l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_PDUType14FrameSequenceNumber_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_PDUType14FrameSequenceNumber_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_PDUType14FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_PDUType14FrameSequenceNumber_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PDUType14FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PDUType14FrameSequenceNumber_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_PDUType14FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_PDUType14FrameSequenceNumber_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PDUType14FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PDUType14FrameSequenceNumber_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_PDUType14FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_PDUType14FrameSequenceNumber_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PDUType14FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PDUType14FrameSequenceNumber_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PDUType14FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_PDUType14FrameSequenceNumber_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PDUType14FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_PDUType14FrameSequenceNumber_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PDUType14FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_PDUType14FrameSequenceNumber_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PDUType14FrameSequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_PDUType14FrameSequenceNumber_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0l,  3l }	/* (0..3) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_PDUType14FrameSequenceNumber_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PDUType14FrameSequenceNumber = {
+	"RANAP_PDUType14FrameSequenceNumber",
+	"RANAP_PDUType14FrameSequenceNumber",
+	RANAP_PDUType14FrameSequenceNumber_free,
+	RANAP_PDUType14FrameSequenceNumber_print,
+	RANAP_PDUType14FrameSequenceNumber_constraint,
+	RANAP_PDUType14FrameSequenceNumber_decode_ber,
+	RANAP_PDUType14FrameSequenceNumber_encode_der,
+	RANAP_PDUType14FrameSequenceNumber_decode_xer,
+	RANAP_PDUType14FrameSequenceNumber_encode_xer,
+	RANAP_PDUType14FrameSequenceNumber_decode_uper,
+	RANAP_PDUType14FrameSequenceNumber_encode_uper,
+	RANAP_PDUType14FrameSequenceNumber_decode_aper,
+	RANAP_PDUType14FrameSequenceNumber_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PDUType14FrameSequenceNumber_tags_1,
+	sizeof(asn_DEF_RANAP_PDUType14FrameSequenceNumber_tags_1)
+		/sizeof(asn_DEF_RANAP_PDUType14FrameSequenceNumber_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PDUType14FrameSequenceNumber_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PDUType14FrameSequenceNumber_tags_1)
+		/sizeof(asn_DEF_RANAP_PDUType14FrameSequenceNumber_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_PDUType14FrameSequenceNumber_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_PDUType14FrameSequenceNumber.h b/src/ranap/RANAP_PDUType14FrameSequenceNumber.h
new file mode 100644
index 0000000..52c678b
--- /dev/null
+++ b/src/ranap/RANAP_PDUType14FrameSequenceNumber.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PDUType14FrameSequenceNumber_H_
+#define	_RANAP_PDUType14FrameSequenceNumber_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_PDUType14FrameSequenceNumber */
+typedef long	 RANAP_PDUType14FrameSequenceNumber_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PDUType14FrameSequenceNumber;
+asn_struct_free_f RANAP_PDUType14FrameSequenceNumber_free;
+asn_struct_print_f RANAP_PDUType14FrameSequenceNumber_print;
+asn_constr_check_f RANAP_PDUType14FrameSequenceNumber_constraint;
+ber_type_decoder_f RANAP_PDUType14FrameSequenceNumber_decode_ber;
+der_type_encoder_f RANAP_PDUType14FrameSequenceNumber_encode_der;
+xer_type_decoder_f RANAP_PDUType14FrameSequenceNumber_decode_xer;
+xer_type_encoder_f RANAP_PDUType14FrameSequenceNumber_encode_xer;
+per_type_decoder_f RANAP_PDUType14FrameSequenceNumber_decode_uper;
+per_type_encoder_f RANAP_PDUType14FrameSequenceNumber_encode_uper;
+per_type_decoder_f RANAP_PDUType14FrameSequenceNumber_decode_aper;
+per_type_encoder_f RANAP_PDUType14FrameSequenceNumber_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PDUType14FrameSequenceNumber_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PLMNidentity.c b/src/ranap/RANAP_PLMNidentity.c
new file mode 100644
index 0000000..08b3115
--- /dev/null
+++ b/src/ranap/RANAP_PLMNidentity.c
@@ -0,0 +1,162 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PLMNidentity.h"
+
+int
+RANAP_PLMNidentity_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_RANAP_TBCD_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using RANAP_TBCD_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_PLMNidentity_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_RANAP_TBCD_STRING.free_struct;
+	td->print_struct   = asn_DEF_RANAP_TBCD_STRING.print_struct;
+	td->check_constraints = asn_DEF_RANAP_TBCD_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_RANAP_TBCD_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_RANAP_TBCD_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_RANAP_TBCD_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_RANAP_TBCD_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_RANAP_TBCD_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_RANAP_TBCD_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_RANAP_TBCD_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_RANAP_TBCD_STRING.aper_encoder;
+	/* The next four lines are here because of -fknown-extern-type */
+	td->tags           = asn_DEF_RANAP_TBCD_STRING.tags;
+	td->tags_count     = asn_DEF_RANAP_TBCD_STRING.tags_count;
+	td->all_tags       = asn_DEF_RANAP_TBCD_STRING.all_tags;
+	td->all_tags_count = asn_DEF_RANAP_TBCD_STRING.all_tags_count;
+	/* End of these lines */
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_RANAP_TBCD_STRING.per_constraints;
+	td->elements       = asn_DEF_RANAP_TBCD_STRING.elements;
+	td->elements_count = asn_DEF_RANAP_TBCD_STRING.elements_count;
+	td->specifics      = asn_DEF_RANAP_TBCD_STRING.specifics;
+}
+
+void
+RANAP_PLMNidentity_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_PLMNidentity_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_PLMNidentity_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PLMNidentity_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PLMNidentity_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_PLMNidentity_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_PLMNidentity_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PLMNidentity_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PLMNidentity_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_PLMNidentity_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_PLMNidentity_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PLMNidentity_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PLMNidentity_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PLMNidentity_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_PLMNidentity_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PLMNidentity_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_PLMNidentity_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PLMNidentity_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_PLMNidentity_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PLMNidentity_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_PLMNidentity_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PLMNidentity = {
+	"RANAP_PLMNidentity",
+	"RANAP_PLMNidentity",
+	RANAP_PLMNidentity_free,
+	RANAP_PLMNidentity_print,
+	RANAP_PLMNidentity_constraint,
+	RANAP_PLMNidentity_decode_ber,
+	RANAP_PLMNidentity_encode_der,
+	RANAP_PLMNidentity_decode_xer,
+	RANAP_PLMNidentity_encode_xer,
+	RANAP_PLMNidentity_decode_uper,
+	RANAP_PLMNidentity_encode_uper,
+	RANAP_PLMNidentity_decode_aper,
+	RANAP_PLMNidentity_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_PLMNidentity_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_PLMNidentity.h b/src/ranap/RANAP_PLMNidentity.h
new file mode 100644
index 0000000..d9f09d4
--- /dev/null
+++ b/src/ranap/RANAP_PLMNidentity.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+#include <constr_CHOICE.h>
+
+#ifndef	_RANAP_PLMNidentity_H_
+#define	_RANAP_PLMNidentity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_TBCD-STRING.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_PLMNidentity */
+typedef RANAP_TBCD_STRING_t	 RANAP_PLMNidentity_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PLMNidentity;
+asn_struct_free_f RANAP_PLMNidentity_free;
+asn_struct_print_f RANAP_PLMNidentity_print;
+asn_constr_check_f RANAP_PLMNidentity_constraint;
+ber_type_decoder_f RANAP_PLMNidentity_decode_ber;
+der_type_encoder_f RANAP_PLMNidentity_encode_der;
+xer_type_decoder_f RANAP_PLMNidentity_decode_xer;
+xer_type_encoder_f RANAP_PLMNidentity_encode_xer;
+per_type_decoder_f RANAP_PLMNidentity_decode_uper;
+per_type_encoder_f RANAP_PLMNidentity_encode_uper;
+per_type_decoder_f RANAP_PLMNidentity_decode_aper;
+per_type_encoder_f RANAP_PLMNidentity_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PLMNidentity_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PLMNs-in-shared-network.c b/src/ranap/RANAP_PLMNs-in-shared-network.c
new file mode 100644
index 0000000..4611d8a
--- /dev/null
+++ b/src/ranap/RANAP_PLMNs-in-shared-network.c
@@ -0,0 +1,135 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PLMNs-in-shared-network.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_PLMNs_in_shared_network_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 5,  5,  1l,  32l }	/* (SIZE(1..32)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct Member, pLMNidentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PLMNidentity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pLMNidentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct Member, lA_LIST),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_LA_LIST,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"lA-LIST"
+		},
+	{ ATF_POINTER, 1, offsetof(struct Member, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_Member_oms_2[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lA-LIST */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+	sizeof(struct Member),
+	offsetof(struct Member, _asn_ctx),
+	asn_MAP_Member_tag2el_2,
+	3,	/* Count of tags in the map */
+	asn_MAP_Member_oms_2,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+	"SEQUENCE",
+	"SEQUENCE",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_Member_tags_2,
+	sizeof(asn_DEF_Member_tags_2)
+		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	asn_DEF_Member_tags_2,	/* Same as above */
+	sizeof(asn_DEF_Member_tags_2)
+		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_Member_2,
+	3,	/* Elements count */
+	&asn_SPC_Member_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_PLMNs_in_shared_network_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_Member_2,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_PLMNs_in_shared_network_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_PLMNs_in_shared_network_specs_1 = {
+	sizeof(struct RANAP_PLMNs_in_shared_network),
+	offsetof(struct RANAP_PLMNs_in_shared_network, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PLMNs_in_shared_network = {
+	"RANAP_PLMNs-in-shared-network",
+	"RANAP_PLMNs-in-shared-network",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PLMNs_in_shared_network_tags_1,
+	sizeof(asn_DEF_RANAP_PLMNs_in_shared_network_tags_1)
+		/sizeof(asn_DEF_RANAP_PLMNs_in_shared_network_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PLMNs_in_shared_network_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PLMNs_in_shared_network_tags_1)
+		/sizeof(asn_DEF_RANAP_PLMNs_in_shared_network_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_PLMNs_in_shared_network_constr_1,
+	asn_MBR_RANAP_PLMNs_in_shared_network_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_PLMNs_in_shared_network_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PLMNs-in-shared-network.h b/src/ranap/RANAP_PLMNs-in-shared-network.h
new file mode 100644
index 0000000..512e0fc
--- /dev/null
+++ b/src/ranap/RANAP_PLMNs-in-shared-network.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PLMNs_in_shared_network_H_
+#define	_RANAP_PLMNs_in_shared_network_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "RANAP_PLMNidentity.h"
+#include "RANAP_LA-LIST.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_PLMNs-in-shared-network */
+typedef struct RANAP_PLMNs_in_shared_network {
+	A_SEQUENCE_OF(struct Member {
+		RANAP_PLMNidentity_t	 pLMNidentity;
+		RANAP_LA_LIST_t	 lA_LIST;
+		RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_PLMNs_in_shared_network_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PLMNs_in_shared_network;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PLMNs_in_shared_network_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Paging.c b/src/ranap/RANAP_Paging.c
new file mode 100644
index 0000000..adfa22e
--- /dev/null
+++ b/src/ranap/RANAP_Paging.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_Paging.h"
+
+static int
+memb_paging_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_paging_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_paging_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_paging_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_paging_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_paging_ies_specs_2 = {
+	sizeof(struct paging_ies),
+	offsetof(struct paging_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_paging_ies_2 = {
+	"paging-ies",
+	"paging-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_paging_ies_tags_2,
+	sizeof(asn_DEF_paging_ies_tags_2)
+		/sizeof(asn_DEF_paging_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_paging_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_paging_ies_tags_2)
+		/sizeof(asn_DEF_paging_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_paging_ies_constr_2,
+	asn_MBR_paging_ies_2,
+	1,	/* Single element */
+	&asn_SPC_paging_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_Paging_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Paging, paging_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_paging_ies_2,
+		memb_paging_ies_constraint_1,
+		&asn_PER_memb_paging_ies_constr_2,
+		0,
+		"paging-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Paging_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Paging_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* paging-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Paging_specs_1 = {
+	sizeof(struct RANAP_Paging),
+	offsetof(struct RANAP_Paging, _asn_ctx),
+	asn_MAP_RANAP_Paging_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Paging = {
+	"RANAP_Paging",
+	"RANAP_Paging",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Paging_tags_1,
+	sizeof(asn_DEF_RANAP_Paging_tags_1)
+		/sizeof(asn_DEF_RANAP_Paging_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Paging_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Paging_tags_1)
+		/sizeof(asn_DEF_RANAP_Paging_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Paging_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_Paging_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Paging.h b/src/ranap/RANAP_Paging.h
new file mode 100644
index 0000000..dae16c5
--- /dev/null
+++ b/src/ranap/RANAP_Paging.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_Paging_H_
+#define	_RANAP_Paging_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Paging */
+typedef struct RANAP_Paging {
+	struct paging_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} paging_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Paging_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Paging;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Paging_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PagingAreaID.c b/src/ranap/RANAP_PagingAreaID.c
new file mode 100644
index 0000000..d00f797
--- /dev/null
+++ b/src/ranap/RANAP_PagingAreaID.c
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PagingAreaID.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_PagingAreaID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_PagingAreaID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_PagingAreaID, choice.lAI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_LAI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"lAI"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_PagingAreaID, choice.rAI),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RAI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rAI"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_PagingAreaID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lAI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rAI */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_PagingAreaID_specs_1 = {
+	sizeof(struct RANAP_PagingAreaID),
+	offsetof(struct RANAP_PagingAreaID, _asn_ctx),
+	offsetof(struct RANAP_PagingAreaID, present),
+	sizeof(((struct RANAP_PagingAreaID *)0)->present),
+	asn_MAP_RANAP_PagingAreaID_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PagingAreaID = {
+	"RANAP_PagingAreaID",
+	"RANAP_PagingAreaID",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_PagingAreaID_constr_1,
+	asn_MBR_RANAP_PagingAreaID_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_PagingAreaID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PagingAreaID.h b/src/ranap/RANAP_PagingAreaID.h
new file mode 100644
index 0000000..13b2507
--- /dev/null
+++ b/src/ranap/RANAP_PagingAreaID.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PagingAreaID_H_
+#define	_RANAP_PagingAreaID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_LAI.h"
+#include "RANAP_RAI.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_PagingAreaID_PR {
+	RANAP_PagingAreaID_PR_NOTHING,	/* No components present */
+	RANAP_PagingAreaID_PR_lAI,
+	RANAP_PagingAreaID_PR_rAI,
+	/* Extensions may appear below */
+	
+} RANAP_PagingAreaID_PR;
+
+/* RANAP_PagingAreaID */
+typedef struct RANAP_PagingAreaID {
+	RANAP_PagingAreaID_PR present;
+	union RANAP_PagingAreaID_u {
+		RANAP_LAI_t	 lAI;
+		RANAP_RAI_t	 rAI;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_PagingAreaID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PagingAreaID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PagingAreaID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PagingCause.c b/src/ranap/RANAP_PagingCause.c
new file mode 100644
index 0000000..5e1a26a
--- /dev/null
+++ b/src/ranap/RANAP_PagingCause.c
@@ -0,0 +1,175 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PagingCause.h"
+
+int
+RANAP_PagingCause_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_PagingCause_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_PagingCause_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_PagingCause_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_PagingCause_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PagingCause_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PagingCause_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_PagingCause_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_PagingCause_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PagingCause_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PagingCause_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_PagingCause_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_PagingCause_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PagingCause_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PagingCause_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PagingCause_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_PagingCause_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PagingCause_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_PagingCause_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PagingCause_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_PagingCause_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PagingCause_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_PagingCause_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0l,  4l }	/* (0..4,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_PagingCause_value2enum_1[] = {
+	{ 0,	31,	"terminating-conversational-call" },
+	{ 1,	26,	"terminating-streaming-call" },
+	{ 2,	28,	"terminating-interactive-call" },
+	{ 3,	27,	"terminating-background-call" },
+	{ 4,	35,	"terminating-low-priority-signalling" },
+	{ 5,	36,	"terminating-high-priority-signalling" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_PagingCause_enum2value_1[] = {
+	3,	/* terminating-background-call(3) */
+	0,	/* terminating-conversational-call(0) */
+	5,	/* terminating-high-priority-signalling(5) */
+	2,	/* terminating-interactive-call(2) */
+	4,	/* terminating-low-priority-signalling(4) */
+	1	/* terminating-streaming-call(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_PagingCause_specs_1 = {
+	asn_MAP_RANAP_PagingCause_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_PagingCause_enum2value_1,	/* N => "tag"; sorted by N */
+	6,	/* Number of elements in the maps */
+	6,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_PagingCause_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PagingCause = {
+	"RANAP_PagingCause",
+	"RANAP_PagingCause",
+	RANAP_PagingCause_free,
+	RANAP_PagingCause_print,
+	RANAP_PagingCause_constraint,
+	RANAP_PagingCause_decode_ber,
+	RANAP_PagingCause_encode_der,
+	RANAP_PagingCause_decode_xer,
+	RANAP_PagingCause_encode_xer,
+	RANAP_PagingCause_decode_uper,
+	RANAP_PagingCause_encode_uper,
+	RANAP_PagingCause_decode_aper,
+	RANAP_PagingCause_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PagingCause_tags_1,
+	sizeof(asn_DEF_RANAP_PagingCause_tags_1)
+		/sizeof(asn_DEF_RANAP_PagingCause_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PagingCause_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PagingCause_tags_1)
+		/sizeof(asn_DEF_RANAP_PagingCause_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_PagingCause_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_PagingCause_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PagingCause.h b/src/ranap/RANAP_PagingCause.h
new file mode 100644
index 0000000..cf9167b
--- /dev/null
+++ b/src/ranap/RANAP_PagingCause.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PagingCause_H_
+#define	_RANAP_PagingCause_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_PagingCause {
+	RANAP_PagingCause_terminating_conversational_call	= 0,
+	RANAP_PagingCause_terminating_streaming_call	= 1,
+	RANAP_PagingCause_terminating_interactive_call	= 2,
+	RANAP_PagingCause_terminating_background_call	= 3,
+	RANAP_PagingCause_terminating_low_priority_signalling	= 4,
+	/*
+	 * Enumeration is extensible
+	 */
+	RANAP_PagingCause_terminating_high_priority_signalling	= 5
+} e_RANAP_PagingCause;
+
+/* RANAP_PagingCause */
+typedef long	 RANAP_PagingCause_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PagingCause;
+asn_struct_free_f RANAP_PagingCause_free;
+asn_struct_print_f RANAP_PagingCause_print;
+asn_constr_check_f RANAP_PagingCause_constraint;
+ber_type_decoder_f RANAP_PagingCause_decode_ber;
+der_type_encoder_f RANAP_PagingCause_encode_der;
+xer_type_decoder_f RANAP_PagingCause_decode_xer;
+xer_type_encoder_f RANAP_PagingCause_encode_xer;
+per_type_decoder_f RANAP_PagingCause_decode_uper;
+per_type_encoder_f RANAP_PagingCause_encode_uper;
+per_type_decoder_f RANAP_PagingCause_decode_aper;
+per_type_encoder_f RANAP_PagingCause_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PagingCause_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PeriodicLocationInfo.c b/src/ranap/RANAP_PeriodicLocationInfo.c
new file mode 100644
index 0000000..754b226
--- /dev/null
+++ b/src/ranap/RANAP_PeriodicLocationInfo.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PeriodicLocationInfo.h"
+
+static int
+memb_reportingAmount_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 8639999l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_reportingInterval_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 8639999l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_reportingAmount_constr_2 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  24, -1,  1l,  8639999l }	/* (1..8639999,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_reportingInterval_constr_3 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  24, -1,  1l,  8639999l }	/* (1..8639999,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_PeriodicLocationInfo_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_PeriodicLocationInfo, reportingAmount),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_reportingAmount_constraint_1,
+		&asn_PER_memb_reportingAmount_constr_2,
+		0,
+		"reportingAmount"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_PeriodicLocationInfo, reportingInterval),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_reportingInterval_constraint_1,
+		&asn_PER_memb_reportingInterval_constr_3,
+		0,
+		"reportingInterval"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_PeriodicLocationInfo, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_PeriodicLocationInfo_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_PeriodicLocationInfo_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_PeriodicLocationInfo_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportingAmount */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportingInterval */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_PeriodicLocationInfo_specs_1 = {
+	sizeof(struct RANAP_PeriodicLocationInfo),
+	offsetof(struct RANAP_PeriodicLocationInfo, _asn_ctx),
+	asn_MAP_RANAP_PeriodicLocationInfo_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_PeriodicLocationInfo_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PeriodicLocationInfo = {
+	"RANAP_PeriodicLocationInfo",
+	"RANAP_PeriodicLocationInfo",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PeriodicLocationInfo_tags_1,
+	sizeof(asn_DEF_RANAP_PeriodicLocationInfo_tags_1)
+		/sizeof(asn_DEF_RANAP_PeriodicLocationInfo_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PeriodicLocationInfo_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PeriodicLocationInfo_tags_1)
+		/sizeof(asn_DEF_RANAP_PeriodicLocationInfo_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_PeriodicLocationInfo_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_PeriodicLocationInfo_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PeriodicLocationInfo.h b/src/ranap/RANAP_PeriodicLocationInfo.h
new file mode 100644
index 0000000..b85224a
--- /dev/null
+++ b/src/ranap/RANAP_PeriodicLocationInfo.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PeriodicLocationInfo_H_
+#define	_RANAP_PeriodicLocationInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_PeriodicLocationInfo */
+typedef struct RANAP_PeriodicLocationInfo {
+	long	 reportingAmount;
+	long	 reportingInterval;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_PeriodicLocationInfo_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PeriodicLocationInfo;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PeriodicLocationInfo_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PeriodicReportingIndicator.c b/src/ranap/RANAP_PeriodicReportingIndicator.c
new file mode 100644
index 0000000..ec9c5c2
--- /dev/null
+++ b/src/ranap/RANAP_PeriodicReportingIndicator.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PeriodicReportingIndicator.h"
+
+int
+RANAP_PeriodicReportingIndicator_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_PeriodicReportingIndicator_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_PeriodicReportingIndicator_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_PeriodicReportingIndicator_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_PeriodicReportingIndicator_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PeriodicReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PeriodicReportingIndicator_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_PeriodicReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_PeriodicReportingIndicator_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PeriodicReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PeriodicReportingIndicator_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_PeriodicReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_PeriodicReportingIndicator_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PeriodicReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PeriodicReportingIndicator_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PeriodicReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_PeriodicReportingIndicator_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PeriodicReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_PeriodicReportingIndicator_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PeriodicReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_PeriodicReportingIndicator_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PeriodicReportingIndicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_PeriodicReportingIndicator_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_PeriodicReportingIndicator_value2enum_1[] = {
+	{ 0,	11,	"periodicSAI" },
+	{ 1,	11,	"periodicGeo" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_PeriodicReportingIndicator_enum2value_1[] = {
+	1,	/* periodicGeo(1) */
+	0	/* periodicSAI(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_PeriodicReportingIndicator_specs_1 = {
+	asn_MAP_RANAP_PeriodicReportingIndicator_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_PeriodicReportingIndicator_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_PeriodicReportingIndicator_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PeriodicReportingIndicator = {
+	"RANAP_PeriodicReportingIndicator",
+	"RANAP_PeriodicReportingIndicator",
+	RANAP_PeriodicReportingIndicator_free,
+	RANAP_PeriodicReportingIndicator_print,
+	RANAP_PeriodicReportingIndicator_constraint,
+	RANAP_PeriodicReportingIndicator_decode_ber,
+	RANAP_PeriodicReportingIndicator_encode_der,
+	RANAP_PeriodicReportingIndicator_decode_xer,
+	RANAP_PeriodicReportingIndicator_encode_xer,
+	RANAP_PeriodicReportingIndicator_decode_uper,
+	RANAP_PeriodicReportingIndicator_encode_uper,
+	RANAP_PeriodicReportingIndicator_decode_aper,
+	RANAP_PeriodicReportingIndicator_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PeriodicReportingIndicator_tags_1,
+	sizeof(asn_DEF_RANAP_PeriodicReportingIndicator_tags_1)
+		/sizeof(asn_DEF_RANAP_PeriodicReportingIndicator_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PeriodicReportingIndicator_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PeriodicReportingIndicator_tags_1)
+		/sizeof(asn_DEF_RANAP_PeriodicReportingIndicator_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_PeriodicReportingIndicator_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_PeriodicReportingIndicator_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PeriodicReportingIndicator.h b/src/ranap/RANAP_PeriodicReportingIndicator.h
new file mode 100644
index 0000000..6b4bf5f
--- /dev/null
+++ b/src/ranap/RANAP_PeriodicReportingIndicator.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PeriodicReportingIndicator_H_
+#define	_RANAP_PeriodicReportingIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_PeriodicReportingIndicator {
+	RANAP_PeriodicReportingIndicator_periodicSAI	= 0,
+	RANAP_PeriodicReportingIndicator_periodicGeo	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_PeriodicReportingIndicator;
+
+/* RANAP_PeriodicReportingIndicator */
+typedef long	 RANAP_PeriodicReportingIndicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PeriodicReportingIndicator;
+asn_struct_free_f RANAP_PeriodicReportingIndicator_free;
+asn_struct_print_f RANAP_PeriodicReportingIndicator_print;
+asn_constr_check_f RANAP_PeriodicReportingIndicator_constraint;
+ber_type_decoder_f RANAP_PeriodicReportingIndicator_decode_ber;
+der_type_encoder_f RANAP_PeriodicReportingIndicator_encode_der;
+xer_type_decoder_f RANAP_PeriodicReportingIndicator_decode_xer;
+xer_type_encoder_f RANAP_PeriodicReportingIndicator_encode_xer;
+per_type_decoder_f RANAP_PeriodicReportingIndicator_decode_uper;
+per_type_encoder_f RANAP_PeriodicReportingIndicator_encode_uper;
+per_type_decoder_f RANAP_PeriodicReportingIndicator_decode_aper;
+per_type_encoder_f RANAP_PeriodicReportingIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PeriodicReportingIndicator_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PermanentNAS-UE-ID.c b/src/ranap/RANAP_PermanentNAS-UE-ID.c
new file mode 100644
index 0000000..f36414e
--- /dev/null
+++ b/src/ranap/RANAP_PermanentNAS-UE-ID.c
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PermanentNAS-UE-ID.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_PermanentNAS_UE_ID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_PermanentNAS_UE_ID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_PermanentNAS_UE_ID, choice.iMSI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IMSI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iMSI"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_PermanentNAS_UE_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iMSI */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_PermanentNAS_UE_ID_specs_1 = {
+	sizeof(struct RANAP_PermanentNAS_UE_ID),
+	offsetof(struct RANAP_PermanentNAS_UE_ID, _asn_ctx),
+	offsetof(struct RANAP_PermanentNAS_UE_ID, present),
+	sizeof(((struct RANAP_PermanentNAS_UE_ID *)0)->present),
+	asn_MAP_RANAP_PermanentNAS_UE_ID_tag2el_1,
+	1,	/* Count of tags in the map */
+	0,
+	1	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PermanentNAS_UE_ID = {
+	"RANAP_PermanentNAS-UE-ID",
+	"RANAP_PermanentNAS-UE-ID",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_PermanentNAS_UE_ID_constr_1,
+	asn_MBR_RANAP_PermanentNAS_UE_ID_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_PermanentNAS_UE_ID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PermanentNAS-UE-ID.h b/src/ranap/RANAP_PermanentNAS-UE-ID.h
new file mode 100644
index 0000000..9ad1dde
--- /dev/null
+++ b/src/ranap/RANAP_PermanentNAS-UE-ID.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PermanentNAS_UE_ID_H_
+#define	_RANAP_PermanentNAS_UE_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IMSI.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_PermanentNAS_UE_ID_PR {
+	RANAP_PermanentNAS_UE_ID_PR_NOTHING,	/* No components present */
+	RANAP_PermanentNAS_UE_ID_PR_iMSI,
+	/* Extensions may appear below */
+	
+} RANAP_PermanentNAS_UE_ID_PR;
+
+/* RANAP_PermanentNAS-UE-ID */
+typedef struct RANAP_PermanentNAS_UE_ID {
+	RANAP_PermanentNAS_UE_ID_PR present;
+	union RANAP_PermanentNAS_UE_ID_u {
+		RANAP_IMSI_t	 iMSI;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_PermanentNAS_UE_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PermanentNAS_UE_ID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PermanentNAS_UE_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PermittedEncryptionAlgorithms.c b/src/ranap/RANAP_PermittedEncryptionAlgorithms.c
new file mode 100644
index 0000000..23a2b00
--- /dev/null
+++ b/src/ranap/RANAP_PermittedEncryptionAlgorithms.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PermittedEncryptionAlgorithms.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_PermittedEncryptionAlgorithms_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  1l,  16l }	/* (SIZE(1..16)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_PermittedEncryptionAlgorithms_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_EncryptionAlgorithm,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_PermittedEncryptionAlgorithms_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_PermittedEncryptionAlgorithms_specs_1 = {
+	sizeof(struct RANAP_PermittedEncryptionAlgorithms),
+	offsetof(struct RANAP_PermittedEncryptionAlgorithms, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PermittedEncryptionAlgorithms = {
+	"RANAP_PermittedEncryptionAlgorithms",
+	"RANAP_PermittedEncryptionAlgorithms",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PermittedEncryptionAlgorithms_tags_1,
+	sizeof(asn_DEF_RANAP_PermittedEncryptionAlgorithms_tags_1)
+		/sizeof(asn_DEF_RANAP_PermittedEncryptionAlgorithms_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PermittedEncryptionAlgorithms_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PermittedEncryptionAlgorithms_tags_1)
+		/sizeof(asn_DEF_RANAP_PermittedEncryptionAlgorithms_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_PermittedEncryptionAlgorithms_constr_1,
+	asn_MBR_RANAP_PermittedEncryptionAlgorithms_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_PermittedEncryptionAlgorithms_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PermittedEncryptionAlgorithms.h b/src/ranap/RANAP_PermittedEncryptionAlgorithms.h
new file mode 100644
index 0000000..542c232
--- /dev/null
+++ b/src/ranap/RANAP_PermittedEncryptionAlgorithms.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PermittedEncryptionAlgorithms_H_
+#define	_RANAP_PermittedEncryptionAlgorithms_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_EncryptionAlgorithm.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_PermittedEncryptionAlgorithms */
+typedef struct RANAP_PermittedEncryptionAlgorithms {
+	A_SEQUENCE_OF(RANAP_EncryptionAlgorithm_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_PermittedEncryptionAlgorithms_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PermittedEncryptionAlgorithms;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PermittedEncryptionAlgorithms_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PermittedIntegrityProtectionAlgorithms.c b/src/ranap/RANAP_PermittedIntegrityProtectionAlgorithms.c
new file mode 100644
index 0000000..0a20a97
--- /dev/null
+++ b/src/ranap/RANAP_PermittedIntegrityProtectionAlgorithms.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PermittedIntegrityProtectionAlgorithms.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_PermittedIntegrityProtectionAlgorithms_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  1l,  16l }	/* (SIZE(1..16)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_PermittedIntegrityProtectionAlgorithms_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IntegrityProtectionAlgorithm,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_PermittedIntegrityProtectionAlgorithms_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_PermittedIntegrityProtectionAlgorithms_specs_1 = {
+	sizeof(struct RANAP_PermittedIntegrityProtectionAlgorithms),
+	offsetof(struct RANAP_PermittedIntegrityProtectionAlgorithms, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PermittedIntegrityProtectionAlgorithms = {
+	"RANAP_PermittedIntegrityProtectionAlgorithms",
+	"RANAP_PermittedIntegrityProtectionAlgorithms",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PermittedIntegrityProtectionAlgorithms_tags_1,
+	sizeof(asn_DEF_RANAP_PermittedIntegrityProtectionAlgorithms_tags_1)
+		/sizeof(asn_DEF_RANAP_PermittedIntegrityProtectionAlgorithms_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PermittedIntegrityProtectionAlgorithms_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PermittedIntegrityProtectionAlgorithms_tags_1)
+		/sizeof(asn_DEF_RANAP_PermittedIntegrityProtectionAlgorithms_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_PermittedIntegrityProtectionAlgorithms_constr_1,
+	asn_MBR_RANAP_PermittedIntegrityProtectionAlgorithms_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_PermittedIntegrityProtectionAlgorithms_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PermittedIntegrityProtectionAlgorithms.h b/src/ranap/RANAP_PermittedIntegrityProtectionAlgorithms.h
new file mode 100644
index 0000000..b6737f4
--- /dev/null
+++ b/src/ranap/RANAP_PermittedIntegrityProtectionAlgorithms.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PermittedIntegrityProtectionAlgorithms_H_
+#define	_RANAP_PermittedIntegrityProtectionAlgorithms_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IntegrityProtectionAlgorithm.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_PermittedIntegrityProtectionAlgorithms */
+typedef struct RANAP_PermittedIntegrityProtectionAlgorithms {
+	A_SEQUENCE_OF(RANAP_IntegrityProtectionAlgorithm_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_PermittedIntegrityProtectionAlgorithms_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PermittedIntegrityProtectionAlgorithms;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PermittedIntegrityProtectionAlgorithms_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Port-Number.c b/src/ranap/RANAP_Port-Number.c
new file mode 100644
index 0000000..5b41fed
--- /dev/null
+++ b/src/ranap/RANAP_Port-Number.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Port-Number.h"
+
+int
+RANAP_Port_Number_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 2l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Port_Number_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_Port_Number_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Port_Number_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Port_Number_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Port_Number_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Port_Number_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Port_Number_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Port_Number_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Port_Number_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Port_Number_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Port_Number_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Port_Number_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Port_Number_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Port_Number_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Port_Number_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Port_Number_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Port_Number_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Port_Number_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Port_Number_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Port_Number_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Port_Number_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Port_Number_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  2l,  2l }	/* (SIZE(2..2)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Port_Number_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Port_Number = {
+	"RANAP_Port-Number",
+	"RANAP_Port-Number",
+	RANAP_Port_Number_free,
+	RANAP_Port_Number_print,
+	RANAP_Port_Number_constraint,
+	RANAP_Port_Number_decode_ber,
+	RANAP_Port_Number_encode_der,
+	RANAP_Port_Number_decode_xer,
+	RANAP_Port_Number_encode_xer,
+	RANAP_Port_Number_decode_uper,
+	RANAP_Port_Number_encode_uper,
+	RANAP_Port_Number_decode_aper,
+	RANAP_Port_Number_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Port_Number_tags_1,
+	sizeof(asn_DEF_RANAP_Port_Number_tags_1)
+		/sizeof(asn_DEF_RANAP_Port_Number_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Port_Number_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Port_Number_tags_1)
+		/sizeof(asn_DEF_RANAP_Port_Number_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Port_Number_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_Port-Number.h b/src/ranap/RANAP_Port-Number.h
new file mode 100644
index 0000000..3e64495
--- /dev/null
+++ b/src/ranap/RANAP_Port-Number.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Port_Number_H_
+#define	_RANAP_Port_Number_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Port-Number */
+typedef OCTET_STRING_t	 RANAP_Port_Number_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Port_Number;
+asn_struct_free_f RANAP_Port_Number_free;
+asn_struct_print_f RANAP_Port_Number_print;
+asn_constr_check_f RANAP_Port_Number_constraint;
+ber_type_decoder_f RANAP_Port_Number_decode_ber;
+der_type_encoder_f RANAP_Port_Number_encode_der;
+xer_type_decoder_f RANAP_Port_Number_decode_xer;
+xer_type_encoder_f RANAP_Port_Number_encode_xer;
+per_type_decoder_f RANAP_Port_Number_decode_uper;
+per_type_encoder_f RANAP_Port_Number_encode_uper;
+per_type_decoder_f RANAP_Port_Number_decode_aper;
+per_type_encoder_f RANAP_Port_Number_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Port_Number_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PositionData.c b/src/ranap/RANAP_PositionData.c
new file mode 100644
index 0000000..3f76e48
--- /dev/null
+++ b/src/ranap/RANAP_PositionData.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PositionData.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_PositionData_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_PositionData, positioningDataDiscriminator),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PositioningDataDiscriminator,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"positioningDataDiscriminator"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_PositionData, positioningDataSet),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PositioningDataSet,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"positioningDataSet"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_PositionData, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_PositionData_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_PositionData_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_PositionData_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* positioningDataDiscriminator */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* positioningDataSet */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_PositionData_specs_1 = {
+	sizeof(struct RANAP_PositionData),
+	offsetof(struct RANAP_PositionData, _asn_ctx),
+	asn_MAP_RANAP_PositionData_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_PositionData_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PositionData = {
+	"RANAP_PositionData",
+	"RANAP_PositionData",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PositionData_tags_1,
+	sizeof(asn_DEF_RANAP_PositionData_tags_1)
+		/sizeof(asn_DEF_RANAP_PositionData_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PositionData_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PositionData_tags_1)
+		/sizeof(asn_DEF_RANAP_PositionData_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_PositionData_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_PositionData_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PositionData.h b/src/ranap/RANAP_PositionData.h
new file mode 100644
index 0000000..1bf8e6f
--- /dev/null
+++ b/src/ranap/RANAP_PositionData.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PositionData_H_
+#define	_RANAP_PositionData_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PositioningDataDiscriminator.h"
+#include "RANAP_PositioningDataSet.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_PositionData */
+typedef struct RANAP_PositionData {
+	RANAP_PositioningDataDiscriminator_t	 positioningDataDiscriminator;
+	RANAP_PositioningDataSet_t	*positioningDataSet	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_PositionData_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PositionData;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PositionData_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PositionDataSpecificToGERANIuMode.c b/src/ranap/RANAP_PositionDataSpecificToGERANIuMode.c
new file mode 100644
index 0000000..197fdf9
--- /dev/null
+++ b/src/ranap/RANAP_PositionDataSpecificToGERANIuMode.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PositionDataSpecificToGERANIuMode.h"
+
+int
+RANAP_PositionDataSpecificToGERANIuMode_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_PositionDataSpecificToGERANIuMode_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_PositionDataSpecificToGERANIuMode_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_PositionDataSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_PositionDataSpecificToGERANIuMode_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PositionDataSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PositionDataSpecificToGERANIuMode_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_PositionDataSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_PositionDataSpecificToGERANIuMode_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PositionDataSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PositionDataSpecificToGERANIuMode_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_PositionDataSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_PositionDataSpecificToGERANIuMode_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PositionDataSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PositionDataSpecificToGERANIuMode_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PositionDataSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_PositionDataSpecificToGERANIuMode_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PositionDataSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_PositionDataSpecificToGERANIuMode_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PositionDataSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_PositionDataSpecificToGERANIuMode_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PositionDataSpecificToGERANIuMode_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_PositionDataSpecificToGERANIuMode_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PositionDataSpecificToGERANIuMode = {
+	"RANAP_PositionDataSpecificToGERANIuMode",
+	"RANAP_PositionDataSpecificToGERANIuMode",
+	RANAP_PositionDataSpecificToGERANIuMode_free,
+	RANAP_PositionDataSpecificToGERANIuMode_print,
+	RANAP_PositionDataSpecificToGERANIuMode_constraint,
+	RANAP_PositionDataSpecificToGERANIuMode_decode_ber,
+	RANAP_PositionDataSpecificToGERANIuMode_encode_der,
+	RANAP_PositionDataSpecificToGERANIuMode_decode_xer,
+	RANAP_PositionDataSpecificToGERANIuMode_encode_xer,
+	RANAP_PositionDataSpecificToGERANIuMode_decode_uper,
+	RANAP_PositionDataSpecificToGERANIuMode_encode_uper,
+	RANAP_PositionDataSpecificToGERANIuMode_decode_aper,
+	RANAP_PositionDataSpecificToGERANIuMode_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PositionDataSpecificToGERANIuMode_tags_1,
+	sizeof(asn_DEF_RANAP_PositionDataSpecificToGERANIuMode_tags_1)
+		/sizeof(asn_DEF_RANAP_PositionDataSpecificToGERANIuMode_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PositionDataSpecificToGERANIuMode_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PositionDataSpecificToGERANIuMode_tags_1)
+		/sizeof(asn_DEF_RANAP_PositionDataSpecificToGERANIuMode_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_PositionDataSpecificToGERANIuMode.h b/src/ranap/RANAP_PositionDataSpecificToGERANIuMode.h
new file mode 100644
index 0000000..e0692d6
--- /dev/null
+++ b/src/ranap/RANAP_PositionDataSpecificToGERANIuMode.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PositionDataSpecificToGERANIuMode_H_
+#define	_RANAP_PositionDataSpecificToGERANIuMode_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_PositionDataSpecificToGERANIuMode */
+typedef OCTET_STRING_t	 RANAP_PositionDataSpecificToGERANIuMode_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PositionDataSpecificToGERANIuMode;
+asn_struct_free_f RANAP_PositionDataSpecificToGERANIuMode_free;
+asn_struct_print_f RANAP_PositionDataSpecificToGERANIuMode_print;
+asn_constr_check_f RANAP_PositionDataSpecificToGERANIuMode_constraint;
+ber_type_decoder_f RANAP_PositionDataSpecificToGERANIuMode_decode_ber;
+der_type_encoder_f RANAP_PositionDataSpecificToGERANIuMode_encode_der;
+xer_type_decoder_f RANAP_PositionDataSpecificToGERANIuMode_decode_xer;
+xer_type_encoder_f RANAP_PositionDataSpecificToGERANIuMode_encode_xer;
+per_type_decoder_f RANAP_PositionDataSpecificToGERANIuMode_decode_uper;
+per_type_encoder_f RANAP_PositionDataSpecificToGERANIuMode_encode_uper;
+per_type_decoder_f RANAP_PositionDataSpecificToGERANIuMode_decode_aper;
+per_type_encoder_f RANAP_PositionDataSpecificToGERANIuMode_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PositionDataSpecificToGERANIuMode_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PositioningDataDiscriminator.c b/src/ranap/RANAP_PositioningDataDiscriminator.c
new file mode 100644
index 0000000..111ad32
--- /dev/null
+++ b/src/ranap/RANAP_PositioningDataDiscriminator.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PositioningDataDiscriminator.h"
+
+int
+RANAP_PositioningDataDiscriminator_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 4l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_PositioningDataDiscriminator_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_BIT_STRING.free_struct;
+	td->print_struct   = asn_DEF_BIT_STRING.print_struct;
+	td->check_constraints = asn_DEF_BIT_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_BIT_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_BIT_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_BIT_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_BIT_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_BIT_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_BIT_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_BIT_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_BIT_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_BIT_STRING.per_constraints;
+	td->elements       = asn_DEF_BIT_STRING.elements;
+	td->elements_count = asn_DEF_BIT_STRING.elements_count;
+	td->specifics      = asn_DEF_BIT_STRING.specifics;
+}
+
+void
+RANAP_PositioningDataDiscriminator_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_PositioningDataDiscriminator_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_PositioningDataDiscriminator_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PositioningDataDiscriminator_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PositioningDataDiscriminator_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_PositioningDataDiscriminator_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_PositioningDataDiscriminator_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PositioningDataDiscriminator_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PositioningDataDiscriminator_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_PositioningDataDiscriminator_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_PositioningDataDiscriminator_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PositioningDataDiscriminator_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PositioningDataDiscriminator_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PositioningDataDiscriminator_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_PositioningDataDiscriminator_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PositioningDataDiscriminator_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_PositioningDataDiscriminator_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PositioningDataDiscriminator_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_PositioningDataDiscriminator_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PositioningDataDiscriminator_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_PositioningDataDiscriminator_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  4l,  4l }	/* (SIZE(4..4)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_PositioningDataDiscriminator_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PositioningDataDiscriminator = {
+	"RANAP_PositioningDataDiscriminator",
+	"RANAP_PositioningDataDiscriminator",
+	RANAP_PositioningDataDiscriminator_free,
+	RANAP_PositioningDataDiscriminator_print,
+	RANAP_PositioningDataDiscriminator_constraint,
+	RANAP_PositioningDataDiscriminator_decode_ber,
+	RANAP_PositioningDataDiscriminator_encode_der,
+	RANAP_PositioningDataDiscriminator_decode_xer,
+	RANAP_PositioningDataDiscriminator_encode_xer,
+	RANAP_PositioningDataDiscriminator_decode_uper,
+	RANAP_PositioningDataDiscriminator_encode_uper,
+	RANAP_PositioningDataDiscriminator_decode_aper,
+	RANAP_PositioningDataDiscriminator_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PositioningDataDiscriminator_tags_1,
+	sizeof(asn_DEF_RANAP_PositioningDataDiscriminator_tags_1)
+		/sizeof(asn_DEF_RANAP_PositioningDataDiscriminator_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PositioningDataDiscriminator_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PositioningDataDiscriminator_tags_1)
+		/sizeof(asn_DEF_RANAP_PositioningDataDiscriminator_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_PositioningDataDiscriminator_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_PositioningDataDiscriminator.h b/src/ranap/RANAP_PositioningDataDiscriminator.h
new file mode 100644
index 0000000..8e9da75
--- /dev/null
+++ b/src/ranap/RANAP_PositioningDataDiscriminator.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PositioningDataDiscriminator_H_
+#define	_RANAP_PositioningDataDiscriminator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_PositioningDataDiscriminator */
+typedef BIT_STRING_t	 RANAP_PositioningDataDiscriminator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PositioningDataDiscriminator;
+asn_struct_free_f RANAP_PositioningDataDiscriminator_free;
+asn_struct_print_f RANAP_PositioningDataDiscriminator_print;
+asn_constr_check_f RANAP_PositioningDataDiscriminator_constraint;
+ber_type_decoder_f RANAP_PositioningDataDiscriminator_decode_ber;
+der_type_encoder_f RANAP_PositioningDataDiscriminator_encode_der;
+xer_type_decoder_f RANAP_PositioningDataDiscriminator_decode_xer;
+xer_type_encoder_f RANAP_PositioningDataDiscriminator_encode_xer;
+per_type_decoder_f RANAP_PositioningDataDiscriminator_decode_uper;
+per_type_encoder_f RANAP_PositioningDataDiscriminator_encode_uper;
+per_type_decoder_f RANAP_PositioningDataDiscriminator_decode_aper;
+per_type_encoder_f RANAP_PositioningDataDiscriminator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PositioningDataDiscriminator_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PositioningDataSet.c b/src/ranap/RANAP_PositioningDataSet.c
new file mode 100644
index 0000000..10ed3b1
--- /dev/null
+++ b/src/ranap/RANAP_PositioningDataSet.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PositioningDataSet.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_PositioningDataSet_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  1l,  9l }	/* (SIZE(1..9)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_PositioningDataSet_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_PositioningMethodAndUsage,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_PositioningDataSet_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_PositioningDataSet_specs_1 = {
+	sizeof(struct RANAP_PositioningDataSet),
+	offsetof(struct RANAP_PositioningDataSet, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PositioningDataSet = {
+	"RANAP_PositioningDataSet",
+	"RANAP_PositioningDataSet",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PositioningDataSet_tags_1,
+	sizeof(asn_DEF_RANAP_PositioningDataSet_tags_1)
+		/sizeof(asn_DEF_RANAP_PositioningDataSet_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PositioningDataSet_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PositioningDataSet_tags_1)
+		/sizeof(asn_DEF_RANAP_PositioningDataSet_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_PositioningDataSet_constr_1,
+	asn_MBR_RANAP_PositioningDataSet_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_PositioningDataSet_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PositioningDataSet.h b/src/ranap/RANAP_PositioningDataSet.h
new file mode 100644
index 0000000..1445dda
--- /dev/null
+++ b/src/ranap/RANAP_PositioningDataSet.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PositioningDataSet_H_
+#define	_RANAP_PositioningDataSet_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PositioningMethodAndUsage.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_PositioningDataSet */
+typedef struct RANAP_PositioningDataSet {
+	A_SEQUENCE_OF(RANAP_PositioningMethodAndUsage_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_PositioningDataSet_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PositioningDataSet;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PositioningDataSet_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PositioningMethodAndUsage.c b/src/ranap/RANAP_PositioningMethodAndUsage.c
new file mode 100644
index 0000000..a42295a
--- /dev/null
+++ b/src/ranap/RANAP_PositioningMethodAndUsage.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PositioningMethodAndUsage.h"
+
+int
+RANAP_PositioningMethodAndUsage_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 1l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_PositioningMethodAndUsage_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_PositioningMethodAndUsage_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PositioningMethodAndUsage_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_PositioningMethodAndUsage_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PositioningMethodAndUsage_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_PositioningMethodAndUsage_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PositioningMethodAndUsage_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_PositioningMethodAndUsage_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_PositioningMethodAndUsage_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_PositioningMethodAndUsage_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PositioningMethodAndUsage_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_PositioningMethodAndUsage_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  1l,  1l }	/* (SIZE(1..1)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_PositioningMethodAndUsage_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PositioningMethodAndUsage = {
+	"RANAP_PositioningMethodAndUsage",
+	"RANAP_PositioningMethodAndUsage",
+	RANAP_PositioningMethodAndUsage_free,
+	RANAP_PositioningMethodAndUsage_print,
+	RANAP_PositioningMethodAndUsage_constraint,
+	RANAP_PositioningMethodAndUsage_decode_ber,
+	RANAP_PositioningMethodAndUsage_encode_der,
+	RANAP_PositioningMethodAndUsage_decode_xer,
+	RANAP_PositioningMethodAndUsage_encode_xer,
+	RANAP_PositioningMethodAndUsage_decode_uper,
+	RANAP_PositioningMethodAndUsage_encode_uper,
+	RANAP_PositioningMethodAndUsage_decode_aper,
+	RANAP_PositioningMethodAndUsage_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PositioningMethodAndUsage_tags_1,
+	sizeof(asn_DEF_RANAP_PositioningMethodAndUsage_tags_1)
+		/sizeof(asn_DEF_RANAP_PositioningMethodAndUsage_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PositioningMethodAndUsage_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PositioningMethodAndUsage_tags_1)
+		/sizeof(asn_DEF_RANAP_PositioningMethodAndUsage_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_PositioningMethodAndUsage_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_PositioningMethodAndUsage.h b/src/ranap/RANAP_PositioningMethodAndUsage.h
new file mode 100644
index 0000000..f8306f9
--- /dev/null
+++ b/src/ranap/RANAP_PositioningMethodAndUsage.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PositioningMethodAndUsage_H_
+#define	_RANAP_PositioningMethodAndUsage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_PositioningMethodAndUsage */
+typedef OCTET_STRING_t	 RANAP_PositioningMethodAndUsage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PositioningMethodAndUsage;
+asn_struct_free_f RANAP_PositioningMethodAndUsage_free;
+asn_struct_print_f RANAP_PositioningMethodAndUsage_print;
+asn_constr_check_f RANAP_PositioningMethodAndUsage_constraint;
+ber_type_decoder_f RANAP_PositioningMethodAndUsage_decode_ber;
+der_type_encoder_f RANAP_PositioningMethodAndUsage_encode_der;
+xer_type_decoder_f RANAP_PositioningMethodAndUsage_decode_xer;
+xer_type_encoder_f RANAP_PositioningMethodAndUsage_encode_xer;
+per_type_decoder_f RANAP_PositioningMethodAndUsage_decode_uper;
+per_type_encoder_f RANAP_PositioningMethodAndUsage_encode_uper;
+per_type_decoder_f RANAP_PositioningMethodAndUsage_decode_aper;
+per_type_encoder_f RANAP_PositioningMethodAndUsage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PositioningMethodAndUsage_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PositioningPriority.c b/src/ranap/RANAP_PositioningPriority.c
new file mode 100644
index 0000000..061b980
--- /dev/null
+++ b/src/ranap/RANAP_PositioningPriority.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PositioningPriority.h"
+
+int
+RANAP_PositioningPriority_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_PositioningPriority_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_PositioningPriority_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_PositioningPriority_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_PositioningPriority_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PositioningPriority_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PositioningPriority_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_PositioningPriority_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_PositioningPriority_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PositioningPriority_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PositioningPriority_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_PositioningPriority_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_PositioningPriority_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PositioningPriority_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PositioningPriority_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PositioningPriority_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_PositioningPriority_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PositioningPriority_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_PositioningPriority_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PositioningPriority_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_PositioningPriority_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PositioningPriority_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_PositioningPriority_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_PositioningPriority_value2enum_1[] = {
+	{ 0,	13,	"high-Priority" },
+	{ 1,	15,	"normal-Priority" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_PositioningPriority_enum2value_1[] = {
+	0,	/* high-Priority(0) */
+	1	/* normal-Priority(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_PositioningPriority_specs_1 = {
+	asn_MAP_RANAP_PositioningPriority_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_PositioningPriority_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_PositioningPriority_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PositioningPriority = {
+	"RANAP_PositioningPriority",
+	"RANAP_PositioningPriority",
+	RANAP_PositioningPriority_free,
+	RANAP_PositioningPriority_print,
+	RANAP_PositioningPriority_constraint,
+	RANAP_PositioningPriority_decode_ber,
+	RANAP_PositioningPriority_encode_der,
+	RANAP_PositioningPriority_decode_xer,
+	RANAP_PositioningPriority_encode_xer,
+	RANAP_PositioningPriority_decode_uper,
+	RANAP_PositioningPriority_encode_uper,
+	RANAP_PositioningPriority_decode_aper,
+	RANAP_PositioningPriority_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PositioningPriority_tags_1,
+	sizeof(asn_DEF_RANAP_PositioningPriority_tags_1)
+		/sizeof(asn_DEF_RANAP_PositioningPriority_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PositioningPriority_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PositioningPriority_tags_1)
+		/sizeof(asn_DEF_RANAP_PositioningPriority_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_PositioningPriority_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_PositioningPriority_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PositioningPriority.h b/src/ranap/RANAP_PositioningPriority.h
new file mode 100644
index 0000000..673c475
--- /dev/null
+++ b/src/ranap/RANAP_PositioningPriority.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PositioningPriority_H_
+#define	_RANAP_PositioningPriority_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_PositioningPriority {
+	RANAP_PositioningPriority_high_Priority	= 0,
+	RANAP_PositioningPriority_normal_Priority	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_PositioningPriority;
+
+/* RANAP_PositioningPriority */
+typedef long	 RANAP_PositioningPriority_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PositioningPriority;
+asn_struct_free_f RANAP_PositioningPriority_free;
+asn_struct_print_f RANAP_PositioningPriority_print;
+asn_constr_check_f RANAP_PositioningPriority_constraint;
+ber_type_decoder_f RANAP_PositioningPriority_decode_ber;
+der_type_encoder_f RANAP_PositioningPriority_encode_der;
+xer_type_decoder_f RANAP_PositioningPriority_decode_xer;
+xer_type_encoder_f RANAP_PositioningPriority_encode_xer;
+per_type_decoder_f RANAP_PositioningPriority_decode_uper;
+per_type_encoder_f RANAP_PositioningPriority_encode_uper;
+per_type_decoder_f RANAP_PositioningPriority_decode_aper;
+per_type_encoder_f RANAP_PositioningPriority_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PositioningPriority_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Pre-emptionCapability.c b/src/ranap/RANAP_Pre-emptionCapability.c
new file mode 100644
index 0000000..1f8f7ac
--- /dev/null
+++ b/src/ranap/RANAP_Pre-emptionCapability.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Pre-emptionCapability.h"
+
+int
+RANAP_Pre_emptionCapability_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Pre_emptionCapability_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_Pre_emptionCapability_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Pre_emptionCapability_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Pre_emptionCapability_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Pre_emptionCapability_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Pre_emptionCapability_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Pre_emptionCapability_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Pre_emptionCapability_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Pre_emptionCapability_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Pre_emptionCapability_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Pre_emptionCapability_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Pre_emptionCapability_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Pre_emptionCapability_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Pre_emptionCapability_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Pre_emptionCapability_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Pre_emptionCapability_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Pre_emptionCapability_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Pre_emptionCapability_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Pre_emptionCapability_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Pre_emptionCapability_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Pre_emptionCapability_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Pre_emptionCapability_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 1,  1,  0l,  1l }	/* (0..1) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_Pre_emptionCapability_value2enum_1[] = {
+	{ 0,	29,	"shall-not-trigger-pre-emption" },
+	{ 1,	23,	"may-trigger-pre-emption" }
+};
+static const unsigned int asn_MAP_RANAP_Pre_emptionCapability_enum2value_1[] = {
+	1,	/* may-trigger-pre-emption(1) */
+	0	/* shall-not-trigger-pre-emption(0) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_Pre_emptionCapability_specs_1 = {
+	asn_MAP_RANAP_Pre_emptionCapability_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_Pre_emptionCapability_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Pre_emptionCapability_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Pre_emptionCapability = {
+	"RANAP_Pre-emptionCapability",
+	"RANAP_Pre-emptionCapability",
+	RANAP_Pre_emptionCapability_free,
+	RANAP_Pre_emptionCapability_print,
+	RANAP_Pre_emptionCapability_constraint,
+	RANAP_Pre_emptionCapability_decode_ber,
+	RANAP_Pre_emptionCapability_encode_der,
+	RANAP_Pre_emptionCapability_decode_xer,
+	RANAP_Pre_emptionCapability_encode_xer,
+	RANAP_Pre_emptionCapability_decode_uper,
+	RANAP_Pre_emptionCapability_encode_uper,
+	RANAP_Pre_emptionCapability_decode_aper,
+	RANAP_Pre_emptionCapability_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Pre_emptionCapability_tags_1,
+	sizeof(asn_DEF_RANAP_Pre_emptionCapability_tags_1)
+		/sizeof(asn_DEF_RANAP_Pre_emptionCapability_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Pre_emptionCapability_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Pre_emptionCapability_tags_1)
+		/sizeof(asn_DEF_RANAP_Pre_emptionCapability_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Pre_emptionCapability_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_Pre_emptionCapability_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Pre-emptionCapability.h b/src/ranap/RANAP_Pre-emptionCapability.h
new file mode 100644
index 0000000..7bcdc26
--- /dev/null
+++ b/src/ranap/RANAP_Pre-emptionCapability.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Pre_emptionCapability_H_
+#define	_RANAP_Pre_emptionCapability_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_Pre_emptionCapability {
+	RANAP_Pre_emptionCapability_shall_not_trigger_pre_emption	= 0,
+	RANAP_Pre_emptionCapability_may_trigger_pre_emption	= 1
+} e_RANAP_Pre_emptionCapability;
+
+/* RANAP_Pre-emptionCapability */
+typedef long	 RANAP_Pre_emptionCapability_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Pre_emptionCapability;
+asn_struct_free_f RANAP_Pre_emptionCapability_free;
+asn_struct_print_f RANAP_Pre_emptionCapability_print;
+asn_constr_check_f RANAP_Pre_emptionCapability_constraint;
+ber_type_decoder_f RANAP_Pre_emptionCapability_decode_ber;
+der_type_encoder_f RANAP_Pre_emptionCapability_encode_der;
+xer_type_decoder_f RANAP_Pre_emptionCapability_decode_xer;
+xer_type_encoder_f RANAP_Pre_emptionCapability_encode_xer;
+per_type_decoder_f RANAP_Pre_emptionCapability_decode_uper;
+per_type_encoder_f RANAP_Pre_emptionCapability_encode_uper;
+per_type_decoder_f RANAP_Pre_emptionCapability_decode_aper;
+per_type_encoder_f RANAP_Pre_emptionCapability_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Pre_emptionCapability_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Pre-emptionVulnerability.c b/src/ranap/RANAP_Pre-emptionVulnerability.c
new file mode 100644
index 0000000..6f6067a
--- /dev/null
+++ b/src/ranap/RANAP_Pre-emptionVulnerability.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Pre-emptionVulnerability.h"
+
+int
+RANAP_Pre_emptionVulnerability_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Pre_emptionVulnerability_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_Pre_emptionVulnerability_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Pre_emptionVulnerability_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Pre_emptionVulnerability_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Pre_emptionVulnerability_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Pre_emptionVulnerability_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Pre_emptionVulnerability_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Pre_emptionVulnerability_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Pre_emptionVulnerability_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Pre_emptionVulnerability_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Pre_emptionVulnerability_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Pre_emptionVulnerability_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Pre_emptionVulnerability_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Pre_emptionVulnerability_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Pre_emptionVulnerability_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Pre_emptionVulnerability_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Pre_emptionVulnerability_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Pre_emptionVulnerability_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Pre_emptionVulnerability_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Pre_emptionVulnerability_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Pre_emptionVulnerability_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Pre_emptionVulnerability_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 1,  1,  0l,  1l }	/* (0..1) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_Pre_emptionVulnerability_value2enum_1[] = {
+	{ 0,	16,	"not-pre-emptable" },
+	{ 1,	12,	"pre-emptable" }
+};
+static const unsigned int asn_MAP_RANAP_Pre_emptionVulnerability_enum2value_1[] = {
+	0,	/* not-pre-emptable(0) */
+	1	/* pre-emptable(1) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_Pre_emptionVulnerability_specs_1 = {
+	asn_MAP_RANAP_Pre_emptionVulnerability_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_Pre_emptionVulnerability_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Pre_emptionVulnerability_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Pre_emptionVulnerability = {
+	"RANAP_Pre-emptionVulnerability",
+	"RANAP_Pre-emptionVulnerability",
+	RANAP_Pre_emptionVulnerability_free,
+	RANAP_Pre_emptionVulnerability_print,
+	RANAP_Pre_emptionVulnerability_constraint,
+	RANAP_Pre_emptionVulnerability_decode_ber,
+	RANAP_Pre_emptionVulnerability_encode_der,
+	RANAP_Pre_emptionVulnerability_decode_xer,
+	RANAP_Pre_emptionVulnerability_encode_xer,
+	RANAP_Pre_emptionVulnerability_decode_uper,
+	RANAP_Pre_emptionVulnerability_encode_uper,
+	RANAP_Pre_emptionVulnerability_decode_aper,
+	RANAP_Pre_emptionVulnerability_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Pre_emptionVulnerability_tags_1,
+	sizeof(asn_DEF_RANAP_Pre_emptionVulnerability_tags_1)
+		/sizeof(asn_DEF_RANAP_Pre_emptionVulnerability_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Pre_emptionVulnerability_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Pre_emptionVulnerability_tags_1)
+		/sizeof(asn_DEF_RANAP_Pre_emptionVulnerability_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Pre_emptionVulnerability_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_Pre_emptionVulnerability_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Pre-emptionVulnerability.h b/src/ranap/RANAP_Pre-emptionVulnerability.h
new file mode 100644
index 0000000..d8ec7ee
--- /dev/null
+++ b/src/ranap/RANAP_Pre-emptionVulnerability.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Pre_emptionVulnerability_H_
+#define	_RANAP_Pre_emptionVulnerability_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_Pre_emptionVulnerability {
+	RANAP_Pre_emptionVulnerability_not_pre_emptable	= 0,
+	RANAP_Pre_emptionVulnerability_pre_emptable	= 1
+} e_RANAP_Pre_emptionVulnerability;
+
+/* RANAP_Pre-emptionVulnerability */
+typedef long	 RANAP_Pre_emptionVulnerability_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Pre_emptionVulnerability;
+asn_struct_free_f RANAP_Pre_emptionVulnerability_free;
+asn_struct_print_f RANAP_Pre_emptionVulnerability_print;
+asn_constr_check_f RANAP_Pre_emptionVulnerability_constraint;
+ber_type_decoder_f RANAP_Pre_emptionVulnerability_decode_ber;
+der_type_encoder_f RANAP_Pre_emptionVulnerability_encode_der;
+xer_type_decoder_f RANAP_Pre_emptionVulnerability_decode_xer;
+xer_type_encoder_f RANAP_Pre_emptionVulnerability_encode_xer;
+per_type_decoder_f RANAP_Pre_emptionVulnerability_decode_uper;
+per_type_encoder_f RANAP_Pre_emptionVulnerability_encode_uper;
+per_type_decoder_f RANAP_Pre_emptionVulnerability_decode_aper;
+per_type_encoder_f RANAP_Pre_emptionVulnerability_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Pre_emptionVulnerability_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Presence.c b/src/ranap/RANAP_Presence.c
new file mode 100644
index 0000000..8d7bab5
--- /dev/null
+++ b/src/ranap/RANAP_Presence.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-CommonDataTypes"
+ * 	found in "../../asn1/ranap/RANAP-CommonDataTypes.asn"
+ */
+
+#include "RANAP_Presence.h"
+
+int
+RANAP_Presence_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Presence_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_Presence_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Presence_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Presence_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Presence_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Presence_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Presence_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Presence_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Presence_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Presence_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Presence_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Presence_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Presence_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Presence_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Presence_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Presence_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Presence_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Presence_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Presence_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Presence_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Presence_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Presence_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0l,  2l }	/* (0..2) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_Presence_value2enum_1[] = {
+	{ 0,	8,	"optional" },
+	{ 1,	11,	"conditional" },
+	{ 2,	9,	"mandatory" }
+};
+static const unsigned int asn_MAP_RANAP_Presence_enum2value_1[] = {
+	1,	/* conditional(1) */
+	2,	/* mandatory(2) */
+	0	/* optional(0) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_Presence_specs_1 = {
+	asn_MAP_RANAP_Presence_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_Presence_enum2value_1,	/* N => "tag"; sorted by N */
+	3,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Presence_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Presence = {
+	"RANAP_Presence",
+	"RANAP_Presence",
+	RANAP_Presence_free,
+	RANAP_Presence_print,
+	RANAP_Presence_constraint,
+	RANAP_Presence_decode_ber,
+	RANAP_Presence_encode_der,
+	RANAP_Presence_decode_xer,
+	RANAP_Presence_encode_xer,
+	RANAP_Presence_decode_uper,
+	RANAP_Presence_encode_uper,
+	RANAP_Presence_decode_aper,
+	RANAP_Presence_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Presence_tags_1,
+	sizeof(asn_DEF_RANAP_Presence_tags_1)
+		/sizeof(asn_DEF_RANAP_Presence_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Presence_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Presence_tags_1)
+		/sizeof(asn_DEF_RANAP_Presence_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Presence_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_Presence_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Presence.h b/src/ranap/RANAP_Presence.h
new file mode 100644
index 0000000..ee14482
--- /dev/null
+++ b/src/ranap/RANAP_Presence.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-CommonDataTypes"
+ * 	found in "../../asn1/ranap/RANAP-CommonDataTypes.asn"
+ */
+
+#ifndef	_RANAP_Presence_H_
+#define	_RANAP_Presence_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_Presence {
+	RANAP_Presence_optional	= 0,
+	RANAP_Presence_conditional	= 1,
+	RANAP_Presence_mandatory	= 2
+} e_RANAP_Presence;
+
+/* RANAP_Presence */
+typedef long	 RANAP_Presence_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Presence;
+asn_struct_free_f RANAP_Presence_free;
+asn_struct_print_f RANAP_Presence_print;
+asn_constr_check_f RANAP_Presence_constraint;
+ber_type_decoder_f RANAP_Presence_decode_ber;
+der_type_encoder_f RANAP_Presence_encode_der;
+xer_type_decoder_f RANAP_Presence_decode_xer;
+xer_type_encoder_f RANAP_Presence_encode_xer;
+per_type_decoder_f RANAP_Presence_decode_uper;
+per_type_encoder_f RANAP_Presence_encode_uper;
+per_type_decoder_f RANAP_Presence_decode_aper;
+per_type_encoder_f RANAP_Presence_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Presence_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Priority-Class-Indicator.c b/src/ranap/RANAP_Priority-Class-Indicator.c
new file mode 100644
index 0000000..5c84304
--- /dev/null
+++ b/src/ranap/RANAP_Priority-Class-Indicator.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Priority-Class-Indicator.h"
+
+int
+RANAP_Priority_Class_Indicator_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 8l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Priority_Class_Indicator_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_BIT_STRING.free_struct;
+	td->print_struct   = asn_DEF_BIT_STRING.print_struct;
+	td->check_constraints = asn_DEF_BIT_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_BIT_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_BIT_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_BIT_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_BIT_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_BIT_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_BIT_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_BIT_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_BIT_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_BIT_STRING.per_constraints;
+	td->elements       = asn_DEF_BIT_STRING.elements;
+	td->elements_count = asn_DEF_BIT_STRING.elements_count;
+	td->specifics      = asn_DEF_BIT_STRING.specifics;
+}
+
+void
+RANAP_Priority_Class_Indicator_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Priority_Class_Indicator_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Priority_Class_Indicator_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Priority_Class_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Priority_Class_Indicator_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Priority_Class_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Priority_Class_Indicator_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Priority_Class_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Priority_Class_Indicator_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Priority_Class_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Priority_Class_Indicator_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Priority_Class_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Priority_Class_Indicator_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Priority_Class_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Priority_Class_Indicator_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Priority_Class_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Priority_Class_Indicator_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Priority_Class_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Priority_Class_Indicator_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Priority_Class_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Priority_Class_Indicator_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  8l,  8l }	/* (SIZE(8..8)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Priority_Class_Indicator_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Priority_Class_Indicator = {
+	"RANAP_Priority-Class-Indicator",
+	"RANAP_Priority-Class-Indicator",
+	RANAP_Priority_Class_Indicator_free,
+	RANAP_Priority_Class_Indicator_print,
+	RANAP_Priority_Class_Indicator_constraint,
+	RANAP_Priority_Class_Indicator_decode_ber,
+	RANAP_Priority_Class_Indicator_encode_der,
+	RANAP_Priority_Class_Indicator_decode_xer,
+	RANAP_Priority_Class_Indicator_encode_xer,
+	RANAP_Priority_Class_Indicator_decode_uper,
+	RANAP_Priority_Class_Indicator_encode_uper,
+	RANAP_Priority_Class_Indicator_decode_aper,
+	RANAP_Priority_Class_Indicator_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Priority_Class_Indicator_tags_1,
+	sizeof(asn_DEF_RANAP_Priority_Class_Indicator_tags_1)
+		/sizeof(asn_DEF_RANAP_Priority_Class_Indicator_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Priority_Class_Indicator_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Priority_Class_Indicator_tags_1)
+		/sizeof(asn_DEF_RANAP_Priority_Class_Indicator_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Priority_Class_Indicator_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_Priority-Class-Indicator.h b/src/ranap/RANAP_Priority-Class-Indicator.h
new file mode 100644
index 0000000..932cd87
--- /dev/null
+++ b/src/ranap/RANAP_Priority-Class-Indicator.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Priority_Class_Indicator_H_
+#define	_RANAP_Priority_Class_Indicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Priority-Class-Indicator */
+typedef BIT_STRING_t	 RANAP_Priority_Class_Indicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Priority_Class_Indicator;
+asn_struct_free_f RANAP_Priority_Class_Indicator_free;
+asn_struct_print_f RANAP_Priority_Class_Indicator_print;
+asn_constr_check_f RANAP_Priority_Class_Indicator_constraint;
+ber_type_decoder_f RANAP_Priority_Class_Indicator_decode_ber;
+der_type_encoder_f RANAP_Priority_Class_Indicator_encode_der;
+xer_type_decoder_f RANAP_Priority_Class_Indicator_decode_xer;
+xer_type_encoder_f RANAP_Priority_Class_Indicator_encode_xer;
+per_type_decoder_f RANAP_Priority_Class_Indicator_decode_uper;
+per_type_encoder_f RANAP_Priority_Class_Indicator_encode_uper;
+per_type_decoder_f RANAP_Priority_Class_Indicator_decode_aper;
+per_type_encoder_f RANAP_Priority_Class_Indicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Priority_Class_Indicator_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PriorityLevel.c b/src/ranap/RANAP_PriorityLevel.c
new file mode 100644
index 0000000..e36bae5
--- /dev/null
+++ b/src/ranap/RANAP_PriorityLevel.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_PriorityLevel.h"
+
+int
+RANAP_PriorityLevel_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 15l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_PriorityLevel_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_PriorityLevel_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_PriorityLevel_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_PriorityLevel_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PriorityLevel_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PriorityLevel_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_PriorityLevel_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_PriorityLevel_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PriorityLevel_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PriorityLevel_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_PriorityLevel_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_PriorityLevel_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_PriorityLevel_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_PriorityLevel_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PriorityLevel_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_PriorityLevel_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PriorityLevel_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_PriorityLevel_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_PriorityLevel_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_PriorityLevel_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_PriorityLevel_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_PriorityLevel_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 4,  4,  0l,  15l }	/* (0..15) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_PriorityLevel_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PriorityLevel = {
+	"RANAP_PriorityLevel",
+	"RANAP_PriorityLevel",
+	RANAP_PriorityLevel_free,
+	RANAP_PriorityLevel_print,
+	RANAP_PriorityLevel_constraint,
+	RANAP_PriorityLevel_decode_ber,
+	RANAP_PriorityLevel_encode_der,
+	RANAP_PriorityLevel_decode_xer,
+	RANAP_PriorityLevel_encode_xer,
+	RANAP_PriorityLevel_decode_uper,
+	RANAP_PriorityLevel_encode_uper,
+	RANAP_PriorityLevel_decode_aper,
+	RANAP_PriorityLevel_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PriorityLevel_tags_1,
+	sizeof(asn_DEF_RANAP_PriorityLevel_tags_1)
+		/sizeof(asn_DEF_RANAP_PriorityLevel_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PriorityLevel_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PriorityLevel_tags_1)
+		/sizeof(asn_DEF_RANAP_PriorityLevel_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_PriorityLevel_constr_1,
+	0, 0,	/* Defined elsewhere */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_PriorityLevel.h b/src/ranap/RANAP_PriorityLevel.h
new file mode 100644
index 0000000..75bc5d7
--- /dev/null
+++ b/src/ranap/RANAP_PriorityLevel.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_PriorityLevel_H_
+#define	_RANAP_PriorityLevel_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_PriorityLevel {
+	RANAP_PriorityLevel_spare	= 0,
+	RANAP_PriorityLevel_highest	= 1,
+	RANAP_PriorityLevel_lowest	= 14,
+	RANAP_PriorityLevel_no_priority	= 15
+} e_RANAP_PriorityLevel;
+
+/* RANAP_PriorityLevel */
+typedef long	 RANAP_PriorityLevel_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PriorityLevel;
+asn_struct_free_f RANAP_PriorityLevel_free;
+asn_struct_print_f RANAP_PriorityLevel_print;
+asn_constr_check_f RANAP_PriorityLevel_constraint;
+ber_type_decoder_f RANAP_PriorityLevel_decode_ber;
+der_type_encoder_f RANAP_PriorityLevel_encode_der;
+xer_type_decoder_f RANAP_PriorityLevel_decode_xer;
+xer_type_encoder_f RANAP_PriorityLevel_encode_xer;
+per_type_decoder_f RANAP_PriorityLevel_decode_uper;
+per_type_encoder_f RANAP_PriorityLevel_encode_uper;
+per_type_decoder_f RANAP_PriorityLevel_decode_aper;
+per_type_encoder_f RANAP_PriorityLevel_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PriorityLevel_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PrivateIE-ID.c b/src/ranap/RANAP_PrivateIE-ID.c
new file mode 100644
index 0000000..34f6205
--- /dev/null
+++ b/src/ranap/RANAP_PrivateIE-ID.c
@@ -0,0 +1,102 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-CommonDataTypes"
+ * 	found in "../../asn1/ranap/RANAP-CommonDataTypes.asn"
+ */
+
+#include "RANAP_PrivateIE-ID.h"
+
+static int
+memb_local_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 65535l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_local_constr_2 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_type_RANAP_PrivateIE_ID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 1,  1,  0l,  1l }	/* (0..1) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_PrivateIE_ID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_PrivateIE_ID, choice.local),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_local_constraint_1,
+		&asn_PER_memb_local_constr_2,
+		0,
+		"local"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_PrivateIE_ID, choice.global),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_OBJECT_IDENTIFIER,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"global"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_PrivateIE_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* local */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* global */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_PrivateIE_ID_specs_1 = {
+	sizeof(struct RANAP_PrivateIE_ID),
+	offsetof(struct RANAP_PrivateIE_ID, _asn_ctx),
+	offsetof(struct RANAP_PrivateIE_ID, present),
+	sizeof(((struct RANAP_PrivateIE_ID *)0)->present),
+	asn_MAP_RANAP_PrivateIE_ID_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	-1	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PrivateIE_ID = {
+	"RANAP_PrivateIE-ID",
+	"RANAP_PrivateIE-ID",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_PrivateIE_ID_constr_1,
+	asn_MBR_RANAP_PrivateIE_ID_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_PrivateIE_ID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PrivateIE-ID.h b/src/ranap/RANAP_PrivateIE-ID.h
new file mode 100644
index 0000000..59a28de
--- /dev/null
+++ b/src/ranap/RANAP_PrivateIE-ID.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-CommonDataTypes"
+ * 	found in "../../asn1/ranap/RANAP-CommonDataTypes.asn"
+ */
+
+#ifndef	_RANAP_PrivateIE_ID_H_
+#define	_RANAP_PrivateIE_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <OBJECT_IDENTIFIER.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_PrivateIE_ID_PR {
+	RANAP_PrivateIE_ID_PR_NOTHING,	/* No components present */
+	RANAP_PrivateIE_ID_PR_local,
+	RANAP_PrivateIE_ID_PR_global
+} RANAP_PrivateIE_ID_PR;
+
+/* RANAP_PrivateIE-ID */
+typedef struct RANAP_PrivateIE_ID {
+	RANAP_PrivateIE_ID_PR present;
+	union RANAP_PrivateIE_ID_u {
+		long	 local;
+		OBJECT_IDENTIFIER_t	 global;
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_PrivateIE_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PrivateIE_ID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PrivateIE_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_PrivateMessage.c b/src/ranap/RANAP_PrivateMessage.c
new file mode 100644
index 0000000..52b5ec2
--- /dev/null
+++ b/src/ranap/RANAP_PrivateMessage.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_PrivateMessage.h"
+
+static int
+memb_privateMessage_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_privateMessage_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_privateMessage_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_privateMessage_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_privateMessage_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_privateMessage_ies_specs_2 = {
+	sizeof(struct privateMessage_ies),
+	offsetof(struct privateMessage_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_privateMessage_ies_2 = {
+	"privateMessage-ies",
+	"privateMessage-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_privateMessage_ies_tags_2,
+	sizeof(asn_DEF_privateMessage_ies_tags_2)
+		/sizeof(asn_DEF_privateMessage_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_privateMessage_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_privateMessage_ies_tags_2)
+		/sizeof(asn_DEF_privateMessage_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_privateMessage_ies_constr_2,
+	asn_MBR_privateMessage_ies_2,
+	1,	/* Single element */
+	&asn_SPC_privateMessage_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_PrivateMessage_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_PrivateMessage, privateMessage_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_privateMessage_ies_2,
+		memb_privateMessage_ies_constraint_1,
+		&asn_PER_memb_privateMessage_ies_constr_2,
+		0,
+		"privateMessage-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_PrivateMessage_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_PrivateMessage_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* privateMessage-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_PrivateMessage_specs_1 = {
+	sizeof(struct RANAP_PrivateMessage),
+	offsetof(struct RANAP_PrivateMessage, _asn_ctx),
+	asn_MAP_RANAP_PrivateMessage_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_PrivateMessage = {
+	"RANAP_PrivateMessage",
+	"RANAP_PrivateMessage",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_PrivateMessage_tags_1,
+	sizeof(asn_DEF_RANAP_PrivateMessage_tags_1)
+		/sizeof(asn_DEF_RANAP_PrivateMessage_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_PrivateMessage_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_PrivateMessage_tags_1)
+		/sizeof(asn_DEF_RANAP_PrivateMessage_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_PrivateMessage_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_PrivateMessage_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_PrivateMessage.h b/src/ranap/RANAP_PrivateMessage.h
new file mode 100644
index 0000000..37051f3
--- /dev/null
+++ b/src/ranap/RANAP_PrivateMessage.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_PrivateMessage_H_
+#define	_RANAP_PrivateMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_PrivateMessage */
+typedef struct RANAP_PrivateMessage {
+	struct privateMessage_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} privateMessage_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_PrivateMessage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_PrivateMessage;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_PrivateMessage_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ProcedureCode.c b/src/ranap/RANAP_ProcedureCode.c
new file mode 100644
index 0000000..e76adc5
--- /dev/null
+++ b/src/ranap/RANAP_ProcedureCode.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-CommonDataTypes"
+ * 	found in "../../asn1/ranap/RANAP-CommonDataTypes.asn"
+ */
+
+#include "RANAP_ProcedureCode.h"
+
+int
+RANAP_ProcedureCode_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 255l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ProcedureCode_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_ProcedureCode_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ProcedureCode_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ProcedureCode_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ProcedureCode_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ProcedureCode_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ProcedureCode_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ProcedureCode_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ProcedureCode_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ProcedureCode_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ProcedureCode_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ProcedureCode_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ProcedureCode_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ProcedureCode_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ProcedureCode_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ProcedureCode_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ProcedureCode_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ProcedureCode_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ProcedureCode_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ProcedureCode_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ProcedureCode_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_ProcedureCode_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  0l,  255l }	/* (0..255) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ProcedureCode_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ProcedureCode = {
+	"RANAP_ProcedureCode",
+	"RANAP_ProcedureCode",
+	RANAP_ProcedureCode_free,
+	RANAP_ProcedureCode_print,
+	RANAP_ProcedureCode_constraint,
+	RANAP_ProcedureCode_decode_ber,
+	RANAP_ProcedureCode_encode_der,
+	RANAP_ProcedureCode_decode_xer,
+	RANAP_ProcedureCode_encode_xer,
+	RANAP_ProcedureCode_decode_uper,
+	RANAP_ProcedureCode_encode_uper,
+	RANAP_ProcedureCode_decode_aper,
+	RANAP_ProcedureCode_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ProcedureCode_tags_1,
+	sizeof(asn_DEF_RANAP_ProcedureCode_tags_1)
+		/sizeof(asn_DEF_RANAP_ProcedureCode_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ProcedureCode_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ProcedureCode_tags_1)
+		/sizeof(asn_DEF_RANAP_ProcedureCode_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_ProcedureCode_constr_1,
+	0, 0,	/* Defined elsewhere */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_ProcedureCode.h b/src/ranap/RANAP_ProcedureCode.h
new file mode 100644
index 0000000..9a7763c
--- /dev/null
+++ b/src/ranap/RANAP_ProcedureCode.h
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-CommonDataTypes"
+ * 	found in "../../asn1/ranap/RANAP-CommonDataTypes.asn"
+ */
+
+#ifndef	_RANAP_ProcedureCode_H_
+#define	_RANAP_ProcedureCode_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_ProcedureCode {
+	RANAP_ProcedureCode_id_RAB_Assignment	= 0,
+	RANAP_ProcedureCode_id_Iu_Release	= 1,
+	RANAP_ProcedureCode_id_RelocationPreparation	= 2,
+	RANAP_ProcedureCode_id_RelocationResourceAllocation	= 3,
+	RANAP_ProcedureCode_id_RelocationCancel	= 4,
+	RANAP_ProcedureCode_id_SRNS_ContextTransfer	= 5,
+	RANAP_ProcedureCode_id_SecurityModeControl	= 6,
+	RANAP_ProcedureCode_id_DataVolumeReport	= 7,
+	RANAP_ProcedureCode_id_Reset	= 9,
+	RANAP_ProcedureCode_id_RAB_ReleaseRequest	= 10,
+	RANAP_ProcedureCode_id_Iu_ReleaseRequest	= 11,
+	RANAP_ProcedureCode_id_RelocationDetect	= 12,
+	RANAP_ProcedureCode_id_RelocationComplete	= 13,
+	RANAP_ProcedureCode_id_Paging	= 14,
+	RANAP_ProcedureCode_id_CommonID	= 15,
+	RANAP_ProcedureCode_id_CN_InvokeTrace	= 16,
+	RANAP_ProcedureCode_id_LocationReportingControl	= 17,
+	RANAP_ProcedureCode_id_LocationReport	= 18,
+	RANAP_ProcedureCode_id_InitialUE_Message	= 19,
+	RANAP_ProcedureCode_id_DirectTransfer	= 20,
+	RANAP_ProcedureCode_id_OverloadControl	= 21,
+	RANAP_ProcedureCode_id_ErrorIndication	= 22,
+	RANAP_ProcedureCode_id_SRNS_DataForward	= 23,
+	RANAP_ProcedureCode_id_ForwardSRNS_Context	= 24,
+	RANAP_ProcedureCode_id_privateMessage	= 25,
+	RANAP_ProcedureCode_id_CN_DeactivateTrace	= 26,
+	RANAP_ProcedureCode_id_ResetResource	= 27,
+	RANAP_ProcedureCode_id_RANAP_Relocation	= 28,
+	RANAP_ProcedureCode_id_RAB_ModifyRequest	= 29,
+	RANAP_ProcedureCode_id_LocationRelatedData	= 30,
+	RANAP_ProcedureCode_id_InformationTransfer	= 31,
+	RANAP_ProcedureCode_id_UESpecificInformation	= 32,
+	RANAP_ProcedureCode_id_UplinkInformationExchange	= 33,
+	RANAP_ProcedureCode_id_DirectInformationTransfer	= 34,
+	RANAP_ProcedureCode_id_MBMSSessionStart	= 35,
+	RANAP_ProcedureCode_id_MBMSSessionUpdate	= 36,
+	RANAP_ProcedureCode_id_MBMSSessionStop	= 37,
+	RANAP_ProcedureCode_id_MBMSUELinking	= 38,
+	RANAP_ProcedureCode_id_MBMSRegistration	= 39,
+	RANAP_ProcedureCode_id_MBMSCNDe_Registration_Procedure	= 40,
+	RANAP_ProcedureCode_id_MBMSRABEstablishmentIndication	= 41,
+	RANAP_ProcedureCode_id_MBMSRABRelease	= 42,
+	RANAP_ProcedureCode_id_enhancedRelocationComplete	= 43,
+	RANAP_ProcedureCode_id_enhancedRelocationCompleteConfirm	= 44,
+	RANAP_ProcedureCode_id_RANAPenhancedRelocation	= 45,
+	RANAP_ProcedureCode_id_SRVCCPreparation	= 46,
+	RANAP_ProcedureCode_id_UeRadioCapabilityMatch	= 47
+} e_RANAP_ProcedureCode;
+
+/* RANAP_ProcedureCode */
+typedef long	 RANAP_ProcedureCode_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ProcedureCode;
+asn_struct_free_f RANAP_ProcedureCode_free;
+asn_struct_print_f RANAP_ProcedureCode_print;
+asn_constr_check_f RANAP_ProcedureCode_constraint;
+ber_type_decoder_f RANAP_ProcedureCode_decode_ber;
+der_type_encoder_f RANAP_ProcedureCode_encode_der;
+xer_type_decoder_f RANAP_ProcedureCode_decode_xer;
+xer_type_encoder_f RANAP_ProcedureCode_encode_xer;
+per_type_decoder_f RANAP_ProcedureCode_decode_uper;
+per_type_encoder_f RANAP_ProcedureCode_encode_uper;
+per_type_decoder_f RANAP_ProcedureCode_decode_aper;
+per_type_encoder_f RANAP_ProcedureCode_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ProcedureCode_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ProtocolExtensionID.c b/src/ranap/RANAP_ProtocolExtensionID.c
new file mode 100644
index 0000000..b7bd0a3
--- /dev/null
+++ b/src/ranap/RANAP_ProtocolExtensionID.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-CommonDataTypes"
+ * 	found in "../../asn1/ranap/RANAP-CommonDataTypes.asn"
+ */
+
+#include "RANAP_ProtocolExtensionID.h"
+
+int
+RANAP_ProtocolExtensionID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 65535l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ProtocolExtensionID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_ProtocolExtensionID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ProtocolExtensionID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ProtocolExtensionID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ProtocolExtensionID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ProtocolExtensionID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ProtocolExtensionID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ProtocolExtensionID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ProtocolExtensionID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ProtocolExtensionID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ProtocolExtensionID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ProtocolExtensionID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ProtocolExtensionID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ProtocolExtensionID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ProtocolExtensionID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ProtocolExtensionID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ProtocolExtensionID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ProtocolExtensionID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ProtocolExtensionID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ProtocolExtensionID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ProtocolExtensionID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_ProtocolExtensionID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ProtocolExtensionID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ProtocolExtensionID = {
+	"RANAP_ProtocolExtensionID",
+	"RANAP_ProtocolExtensionID",
+	RANAP_ProtocolExtensionID_free,
+	RANAP_ProtocolExtensionID_print,
+	RANAP_ProtocolExtensionID_constraint,
+	RANAP_ProtocolExtensionID_decode_ber,
+	RANAP_ProtocolExtensionID_encode_der,
+	RANAP_ProtocolExtensionID_decode_xer,
+	RANAP_ProtocolExtensionID_encode_xer,
+	RANAP_ProtocolExtensionID_decode_uper,
+	RANAP_ProtocolExtensionID_encode_uper,
+	RANAP_ProtocolExtensionID_decode_aper,
+	RANAP_ProtocolExtensionID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ProtocolExtensionID_tags_1,
+	sizeof(asn_DEF_RANAP_ProtocolExtensionID_tags_1)
+		/sizeof(asn_DEF_RANAP_ProtocolExtensionID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ProtocolExtensionID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ProtocolExtensionID_tags_1)
+		/sizeof(asn_DEF_RANAP_ProtocolExtensionID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_ProtocolExtensionID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_ProtocolExtensionID.h b/src/ranap/RANAP_ProtocolExtensionID.h
new file mode 100644
index 0000000..83c5226
--- /dev/null
+++ b/src/ranap/RANAP_ProtocolExtensionID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-CommonDataTypes"
+ * 	found in "../../asn1/ranap/RANAP-CommonDataTypes.asn"
+ */
+
+#ifndef	_RANAP_ProtocolExtensionID_H_
+#define	_RANAP_ProtocolExtensionID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ProtocolExtensionID */
+typedef long	 RANAP_ProtocolExtensionID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ProtocolExtensionID;
+asn_struct_free_f RANAP_ProtocolExtensionID_free;
+asn_struct_print_f RANAP_ProtocolExtensionID_print;
+asn_constr_check_f RANAP_ProtocolExtensionID_constraint;
+ber_type_decoder_f RANAP_ProtocolExtensionID_decode_ber;
+der_type_encoder_f RANAP_ProtocolExtensionID_encode_der;
+xer_type_decoder_f RANAP_ProtocolExtensionID_decode_xer;
+xer_type_encoder_f RANAP_ProtocolExtensionID_encode_xer;
+per_type_decoder_f RANAP_ProtocolExtensionID_decode_uper;
+per_type_encoder_f RANAP_ProtocolExtensionID_encode_uper;
+per_type_decoder_f RANAP_ProtocolExtensionID_decode_aper;
+per_type_encoder_f RANAP_ProtocolExtensionID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ProtocolExtensionID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ProtocolIE-ID.c b/src/ranap/RANAP_ProtocolIE-ID.c
new file mode 100644
index 0000000..802b811
--- /dev/null
+++ b/src/ranap/RANAP_ProtocolIE-ID.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-CommonDataTypes"
+ * 	found in "../../asn1/ranap/RANAP-CommonDataTypes.asn"
+ */
+
+#include "RANAP_ProtocolIE-ID.h"
+
+int
+RANAP_ProtocolIE_ID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 65535l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ProtocolIE_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_ProtocolIE_ID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ProtocolIE_ID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ProtocolIE_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ProtocolIE_ID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ProtocolIE_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ProtocolIE_ID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ProtocolIE_ID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ProtocolIE_ID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ProtocolIE_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ProtocolIE_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ProtocolIE_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ProtocolIE_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ProtocolIE_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ProtocolIE_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ProtocolIE_ID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ProtocolIE_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ProtocolIE_ID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ProtocolIE_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ProtocolIE_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ProtocolIE_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_ProtocolIE_ID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ProtocolIE_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ProtocolIE_ID = {
+	"RANAP_ProtocolIE-ID",
+	"RANAP_ProtocolIE-ID",
+	RANAP_ProtocolIE_ID_free,
+	RANAP_ProtocolIE_ID_print,
+	RANAP_ProtocolIE_ID_constraint,
+	RANAP_ProtocolIE_ID_decode_ber,
+	RANAP_ProtocolIE_ID_encode_der,
+	RANAP_ProtocolIE_ID_decode_xer,
+	RANAP_ProtocolIE_ID_encode_xer,
+	RANAP_ProtocolIE_ID_decode_uper,
+	RANAP_ProtocolIE_ID_encode_uper,
+	RANAP_ProtocolIE_ID_decode_aper,
+	RANAP_ProtocolIE_ID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ProtocolIE_ID_tags_1,
+	sizeof(asn_DEF_RANAP_ProtocolIE_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_ProtocolIE_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ProtocolIE_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ProtocolIE_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_ProtocolIE_ID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_ProtocolIE_ID_constr_1,
+	0, 0,	/* Defined elsewhere */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_ProtocolIE-ID.h b/src/ranap/RANAP_ProtocolIE-ID.h
new file mode 100644
index 0000000..9dbbc03
--- /dev/null
+++ b/src/ranap/RANAP_ProtocolIE-ID.h
@@ -0,0 +1,318 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-CommonDataTypes"
+ * 	found in "../../asn1/ranap/RANAP-CommonDataTypes.asn"
+ */
+
+#ifndef	_RANAP_ProtocolIE_ID_H_
+#define	_RANAP_ProtocolIE_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_ProtocolIE_ID {
+	RANAP_ProtocolIE_ID_id_AreaIdentity	= 0,
+	RANAP_ProtocolIE_ID_id_CN_DomainIndicator	= 3,
+	RANAP_ProtocolIE_ID_id_Cause	= 4,
+	RANAP_ProtocolIE_ID_id_ChosenEncryptionAlgorithm	= 5,
+	RANAP_ProtocolIE_ID_id_ChosenIntegrityProtectionAlgorithm	= 6,
+	RANAP_ProtocolIE_ID_id_ClassmarkInformation2	= 7,
+	RANAP_ProtocolIE_ID_id_ClassmarkInformation3	= 8,
+	RANAP_ProtocolIE_ID_id_CriticalityDiagnostics	= 9,
+	RANAP_ProtocolIE_ID_id_DL_GTP_PDU_SequenceNumber	= 10,
+	RANAP_ProtocolIE_ID_id_EncryptionInformation	= 11,
+	RANAP_ProtocolIE_ID_id_IntegrityProtectionInformation	= 12,
+	RANAP_ProtocolIE_ID_id_IuTransportAssociation	= 13,
+	RANAP_ProtocolIE_ID_id_L3_Information	= 14,
+	RANAP_ProtocolIE_ID_id_LAI	= 15,
+	RANAP_ProtocolIE_ID_id_NAS_PDU	= 16,
+	RANAP_ProtocolIE_ID_id_NonSearchingIndication	= 17,
+	RANAP_ProtocolIE_ID_id_NumberOfSteps	= 18,
+	RANAP_ProtocolIE_ID_id_OMC_ID	= 19,
+	RANAP_ProtocolIE_ID_id_OldBSS_ToNewBSS_Information	= 20,
+	RANAP_ProtocolIE_ID_id_PagingAreaID	= 21,
+	RANAP_ProtocolIE_ID_id_PagingCause	= 22,
+	RANAP_ProtocolIE_ID_id_PermanentNAS_UE_ID	= 23,
+	RANAP_ProtocolIE_ID_id_RAB_ContextItem	= 24,
+	RANAP_ProtocolIE_ID_id_RAB_ContextList	= 25,
+	RANAP_ProtocolIE_ID_id_RAB_DataForwardingItem	= 26,
+	RANAP_ProtocolIE_ID_id_RAB_DataForwardingItem_SRNS_CtxReq	= 27,
+	RANAP_ProtocolIE_ID_id_RAB_DataForwardingList	= 28,
+	RANAP_ProtocolIE_ID_id_RAB_DataForwardingList_SRNS_CtxReq	= 29,
+	RANAP_ProtocolIE_ID_id_RAB_DataVolumeReportItem	= 30,
+	RANAP_ProtocolIE_ID_id_RAB_DataVolumeReportList	= 31,
+	RANAP_ProtocolIE_ID_id_RAB_DataVolumeReportRequestItem	= 32,
+	RANAP_ProtocolIE_ID_id_RAB_DataVolumeReportRequestList	= 33,
+	RANAP_ProtocolIE_ID_id_RAB_FailedItem	= 34,
+	RANAP_ProtocolIE_ID_id_RAB_FailedList	= 35,
+	RANAP_ProtocolIE_ID_id_RAB_ID	= 36,
+	RANAP_ProtocolIE_ID_id_RAB_QueuedItem	= 37,
+	RANAP_ProtocolIE_ID_id_RAB_QueuedList	= 38,
+	RANAP_ProtocolIE_ID_id_RAB_ReleaseFailedList	= 39,
+	RANAP_ProtocolIE_ID_id_RAB_ReleaseItem	= 40,
+	RANAP_ProtocolIE_ID_id_RAB_ReleaseList	= 41,
+	RANAP_ProtocolIE_ID_id_RAB_ReleasedItem	= 42,
+	RANAP_ProtocolIE_ID_id_RAB_ReleasedList	= 43,
+	RANAP_ProtocolIE_ID_id_RAB_ReleasedList_IuRelComp	= 44,
+	RANAP_ProtocolIE_ID_id_RAB_RelocationReleaseItem	= 45,
+	RANAP_ProtocolIE_ID_id_RAB_RelocationReleaseList	= 46,
+	RANAP_ProtocolIE_ID_id_RAB_SetupItem_RelocReq	= 47,
+	RANAP_ProtocolIE_ID_id_RAB_SetupItem_RelocReqAck	= 48,
+	RANAP_ProtocolIE_ID_id_RAB_SetupList_RelocReq	= 49,
+	RANAP_ProtocolIE_ID_id_RAB_SetupList_RelocReqAck	= 50,
+	RANAP_ProtocolIE_ID_id_RAB_SetupOrModifiedItem	= 51,
+	RANAP_ProtocolIE_ID_id_RAB_SetupOrModifiedList	= 52,
+	RANAP_ProtocolIE_ID_id_RAB_SetupOrModifyItem	= 53,
+	RANAP_ProtocolIE_ID_id_RAB_SetupOrModifyList	= 54,
+	RANAP_ProtocolIE_ID_id_RAC	= 55,
+	RANAP_ProtocolIE_ID_id_RelocationType	= 56,
+	RANAP_ProtocolIE_ID_id_RequestType	= 57,
+	RANAP_ProtocolIE_ID_id_SAI	= 58,
+	RANAP_ProtocolIE_ID_id_SAPI	= 59,
+	RANAP_ProtocolIE_ID_id_SourceID	= 60,
+	RANAP_ProtocolIE_ID_id_Source_ToTarget_TransparentContainer	= 61,
+	RANAP_ProtocolIE_ID_id_TargetID	= 62,
+	RANAP_ProtocolIE_ID_id_Target_ToSource_TransparentContainer	= 63,
+	RANAP_ProtocolIE_ID_id_TemporaryUE_ID	= 64,
+	RANAP_ProtocolIE_ID_id_TraceReference	= 65,
+	RANAP_ProtocolIE_ID_id_TraceType	= 66,
+	RANAP_ProtocolIE_ID_id_TransportLayerAddress	= 67,
+	RANAP_ProtocolIE_ID_id_TriggerID	= 68,
+	RANAP_ProtocolIE_ID_id_UE_ID	= 69,
+	RANAP_ProtocolIE_ID_id_UL_GTP_PDU_SequenceNumber	= 70,
+	RANAP_ProtocolIE_ID_id_RAB_FailedtoReportItem	= 71,
+	RANAP_ProtocolIE_ID_id_RAB_FailedtoReportList	= 72,
+	RANAP_ProtocolIE_ID_id_KeyStatus	= 75,
+	RANAP_ProtocolIE_ID_id_DRX_CycleLengthCoefficient	= 76,
+	RANAP_ProtocolIE_ID_id_IuSigConIdList	= 77,
+	RANAP_ProtocolIE_ID_id_IuSigConIdItem	= 78,
+	RANAP_ProtocolIE_ID_id_IuSigConId	= 79,
+	RANAP_ProtocolIE_ID_id_DirectTransferInformationItem_RANAP_RelocInf	= 80,
+	RANAP_ProtocolIE_ID_id_DirectTransferInformationList_RANAP_RelocInf	= 81,
+	RANAP_ProtocolIE_ID_id_RAB_ContextItem_RANAP_RelocInf	= 82,
+	RANAP_ProtocolIE_ID_id_RAB_ContextList_RANAP_RelocInf	= 83,
+	RANAP_ProtocolIE_ID_id_RAB_ContextFailedtoTransferItem	= 84,
+	RANAP_ProtocolIE_ID_id_RAB_ContextFailedtoTransferList	= 85,
+	RANAP_ProtocolIE_ID_id_GlobalRNC_ID	= 86,
+	RANAP_ProtocolIE_ID_id_RAB_ReleasedItem_IuRelComp	= 87,
+	RANAP_ProtocolIE_ID_id_MessageStructure	= 88,
+	RANAP_ProtocolIE_ID_id_Alt_RAB_Parameters	= 89,
+	RANAP_ProtocolIE_ID_id_Ass_RAB_Parameters	= 90,
+	RANAP_ProtocolIE_ID_id_RAB_ModifyList	= 91,
+	RANAP_ProtocolIE_ID_id_RAB_ModifyItem	= 92,
+	RANAP_ProtocolIE_ID_id_TypeOfError	= 93,
+	RANAP_ProtocolIE_ID_id_BroadcastAssistanceDataDecipheringKeys	= 94,
+	RANAP_ProtocolIE_ID_id_LocationRelatedDataRequestType	= 95,
+	RANAP_ProtocolIE_ID_id_GlobalCN_ID	= 96,
+	RANAP_ProtocolIE_ID_id_LastKnownServiceArea	= 97,
+	RANAP_ProtocolIE_ID_id_SRB_TrCH_Mapping	= 98,
+	RANAP_ProtocolIE_ID_id_InterSystemInformation_TransparentContainer	= 99,
+	RANAP_ProtocolIE_ID_id_NewBSS_To_OldBSS_Information	= 100,
+	RANAP_ProtocolIE_ID_id_SourceRNC_PDCP_context_info	= 103,
+	RANAP_ProtocolIE_ID_id_InformationTransferID	= 104,
+	RANAP_ProtocolIE_ID_id_SNA_Access_Information	= 105,
+	RANAP_ProtocolIE_ID_id_ProvidedData	= 106,
+	RANAP_ProtocolIE_ID_id_GERAN_BSC_Container	= 107,
+	RANAP_ProtocolIE_ID_id_GERAN_Classmark	= 108,
+	RANAP_ProtocolIE_ID_id_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item	= 109,
+	RANAP_ProtocolIE_ID_id_GERAN_Iumode_RAB_FailedList_RABAssgntResponse	= 110,
+	RANAP_ProtocolIE_ID_id_VerticalAccuracyCode	= 111,
+	RANAP_ProtocolIE_ID_id_ResponseTime	= 112,
+	RANAP_ProtocolIE_ID_id_PositioningPriority	= 113,
+	RANAP_ProtocolIE_ID_id_ClientType	= 114,
+	RANAP_ProtocolIE_ID_id_LocationRelatedDataRequestTypeSpecificToGERANIuMode	= 115,
+	RANAP_ProtocolIE_ID_id_SignallingIndication	= 116,
+	RANAP_ProtocolIE_ID_id_hS_DSCH_MAC_d_Flow_ID	= 117,
+	RANAP_ProtocolIE_ID_id_UESBI_Iu	= 118,
+	RANAP_ProtocolIE_ID_id_PositionData	= 119,
+	RANAP_ProtocolIE_ID_id_PositionDataSpecificToGERANIuMode	= 120,
+	RANAP_ProtocolIE_ID_id_CellLoadInformationGroup	= 121,
+	RANAP_ProtocolIE_ID_id_AccuracyFulfilmentIndicator	= 122,
+	RANAP_ProtocolIE_ID_id_InformationTransferType	= 123,
+	RANAP_ProtocolIE_ID_id_TraceRecordingSessionInformation	= 124,
+	RANAP_ProtocolIE_ID_id_TracePropagationParameters	= 125,
+	RANAP_ProtocolIE_ID_id_InterSystemInformationTransferType	= 126,
+	RANAP_ProtocolIE_ID_id_SelectedPLMN_ID	= 127,
+	RANAP_ProtocolIE_ID_id_RedirectionCompleted	= 128,
+	RANAP_ProtocolIE_ID_id_RedirectionIndication	= 129,
+	RANAP_ProtocolIE_ID_id_NAS_SequenceNumber	= 130,
+	RANAP_ProtocolIE_ID_id_RejectCauseValue	= 131,
+	RANAP_ProtocolIE_ID_id_APN	= 132,
+	RANAP_ProtocolIE_ID_id_CNMBMSLinkingInformation	= 133,
+	RANAP_ProtocolIE_ID_id_DeltaRAListofIdleModeUEs	= 134,
+	RANAP_ProtocolIE_ID_id_FrequenceLayerConvergenceFlag	= 135,
+	RANAP_ProtocolIE_ID_id_InformationExchangeID	= 136,
+	RANAP_ProtocolIE_ID_id_InformationExchangeType	= 137,
+	RANAP_ProtocolIE_ID_id_InformationRequested	= 138,
+	RANAP_ProtocolIE_ID_id_InformationRequestType	= 139,
+	RANAP_ProtocolIE_ID_id_IPMulticastAddress	= 140,
+	RANAP_ProtocolIE_ID_id_JoinedMBMSBearerServicesList	= 141,
+	RANAP_ProtocolIE_ID_id_LeftMBMSBearerServicesList	= 142,
+	RANAP_ProtocolIE_ID_id_MBMSBearerServiceType	= 143,
+	RANAP_ProtocolIE_ID_id_MBMSCNDe_Registration	= 144,
+	RANAP_ProtocolIE_ID_id_MBMSServiceArea	= 145,
+	RANAP_ProtocolIE_ID_id_MBMSSessionDuration	= 146,
+	RANAP_ProtocolIE_ID_id_MBMSSessionIdentity	= 147,
+	RANAP_ProtocolIE_ID_id_PDP_TypeInformation	= 148,
+	RANAP_ProtocolIE_ID_id_RAB_Parameters	= 149,
+	RANAP_ProtocolIE_ID_id_RAListofIdleModeUEs	= 150,
+	RANAP_ProtocolIE_ID_id_MBMSRegistrationRequestType	= 151,
+	RANAP_ProtocolIE_ID_id_SessionUpdateID	= 152,
+	RANAP_ProtocolIE_ID_id_TMGI	= 153,
+	RANAP_ProtocolIE_ID_id_TransportLayerInformation	= 154,
+	RANAP_ProtocolIE_ID_id_UnsuccessfulLinkingList	= 155,
+	RANAP_ProtocolIE_ID_id_MBMSLinkingInformation	= 156,
+	RANAP_ProtocolIE_ID_id_MBMSSessionRepetitionNumber	= 157,
+	RANAP_ProtocolIE_ID_id_AlternativeRABConfiguration	= 158,
+	RANAP_ProtocolIE_ID_id_AlternativeRABConfigurationRequest	= 159,
+	RANAP_ProtocolIE_ID_id_E_DCH_MAC_d_Flow_ID	= 160,
+	RANAP_ProtocolIE_ID_id_SourceBSS_ToTargetBSS_TransparentContainer	= 161,
+	RANAP_ProtocolIE_ID_id_TargetBSS_ToSourceBSS_TransparentContainer	= 162,
+	RANAP_ProtocolIE_ID_id_TimeToMBMSDataTransfer	= 163,
+	RANAP_ProtocolIE_ID_id_IncludeVelocity	= 164,
+	RANAP_ProtocolIE_ID_id_VelocityEstimate	= 165,
+	RANAP_ProtocolIE_ID_id_RedirectAttemptFlag	= 166,
+	RANAP_ProtocolIE_ID_id_RAT_Type	= 167,
+	RANAP_ProtocolIE_ID_id_PeriodicLocationInfo	= 168,
+	RANAP_ProtocolIE_ID_id_MBMSCountingInformation	= 169,
+	RANAP_ProtocolIE_ID_id_170_not_to_be_used_for_IE_ids	= 170,
+	RANAP_ProtocolIE_ID_id_ExtendedRNC_ID	= 171,
+	RANAP_ProtocolIE_ID_id_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf	= 172,
+	RANAP_ProtocolIE_ID_id_Alt_RAB_Parameter_ExtendedMaxBitrateInf	= 173,
+	RANAP_ProtocolIE_ID_id_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList	= 174,
+	RANAP_ProtocolIE_ID_id_Ass_RAB_Parameter_ExtendedMaxBitrateList	= 175,
+	RANAP_ProtocolIE_ID_id_RAB_Parameter_ExtendedGuaranteedBitrateList	= 176,
+	RANAP_ProtocolIE_ID_id_RAB_Parameter_ExtendedMaxBitrateList	= 177,
+	RANAP_ProtocolIE_ID_id_Requested_RAB_Parameter_ExtendedMaxBitrateList	= 178,
+	RANAP_ProtocolIE_ID_id_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList	= 179,
+	RANAP_ProtocolIE_ID_id_LAofIdleModeUEs	= 180,
+	RANAP_ProtocolIE_ID_id_newLAListofIdleModeUEs	= 181,
+	RANAP_ProtocolIE_ID_id_LAListwithNoIdleModeUEsAnyMore	= 182,
+	RANAP_ProtocolIE_ID_id_183_not_to_be_used_for_IE_ids	= 183,
+	RANAP_ProtocolIE_ID_id_GANSS_PositioningDataSet	= 184,
+	RANAP_ProtocolIE_ID_id_RequestedGANSSAssistanceData	= 185,
+	RANAP_ProtocolIE_ID_id_BroadcastGANSSAssistanceDataDecipheringKeys	= 186,
+	RANAP_ProtocolIE_ID_id_d_RNTI_for_NoIuCSUP	= 187,
+	RANAP_ProtocolIE_ID_id_RAB_SetupList_EnhancedRelocCompleteReq	= 188,
+	RANAP_ProtocolIE_ID_id_RAB_SetupItem_EnhancedRelocCompleteReq	= 189,
+	RANAP_ProtocolIE_ID_id_RAB_SetupList_EnhancedRelocCompleteRes	= 190,
+	RANAP_ProtocolIE_ID_id_RAB_SetupItem_EnhancedRelocCompleteRes	= 191,
+	RANAP_ProtocolIE_ID_id_RAB_SetupList_EnhRelocInfoReq	= 192,
+	RANAP_ProtocolIE_ID_id_RAB_SetupItem_EnhRelocInfoReq	= 193,
+	RANAP_ProtocolIE_ID_id_RAB_SetupList_EnhRelocInfoRes	= 194,
+	RANAP_ProtocolIE_ID_id_RAB_SetupItem_EnhRelocInfoRes	= 195,
+	RANAP_ProtocolIE_ID_id_OldIuSigConId	= 196,
+	RANAP_ProtocolIE_ID_id_RAB_FailedList_EnhRelocInfoRes	= 197,
+	RANAP_ProtocolIE_ID_id_RAB_FailedItem_EnhRelocInfoRes	= 198,
+	RANAP_ProtocolIE_ID_id_Global_ENB_ID	= 199,
+	RANAP_ProtocolIE_ID_id_UE_History_Information	= 200,
+	RANAP_ProtocolIE_ID_id_MBMSSynchronisationInformation	= 201,
+	RANAP_ProtocolIE_ID_id_SubscriberProfileIDforRFP	= 202,
+	RANAP_ProtocolIE_ID_id_CSG_Id	= 203,
+	RANAP_ProtocolIE_ID_id_OldIuSigConIdCS	= 204,
+	RANAP_ProtocolIE_ID_id_OldIuSigConIdPS	= 205,
+	RANAP_ProtocolIE_ID_id_GlobalCN_IDCS	= 206,
+	RANAP_ProtocolIE_ID_id_GlobalCN_IDPS	= 207,
+	RANAP_ProtocolIE_ID_id_SourceExtendedRNC_ID	= 208,
+	RANAP_ProtocolIE_ID_id_RAB_ToBeReleasedItem_EnhancedRelocCompleteRes	= 209,
+	RANAP_ProtocolIE_ID_id_RAB_ToBeReleasedList_EnhancedRelocCompleteRes	= 210,
+	RANAP_ProtocolIE_ID_id_SourceRNC_ID	= 211,
+	RANAP_ProtocolIE_ID_id_Relocation_TargetRNC_ID	= 212,
+	RANAP_ProtocolIE_ID_id_Relocation_TargetExtendedRNC_ID	= 213,
+	RANAP_ProtocolIE_ID_id_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf	= 214,
+	RANAP_ProtocolIE_ID_id_Alt_RAB_Parameter_SupportedMaxBitrateInf	= 215,
+	RANAP_ProtocolIE_ID_id_Ass_RAB_Parameter_SupportedGuaranteedBitrateList	= 216,
+	RANAP_ProtocolIE_ID_id_Ass_RAB_Parameter_SupportedMaxBitrateList	= 217,
+	RANAP_ProtocolIE_ID_id_RAB_Parameter_SupportedGuaranteedBitrateList	= 218,
+	RANAP_ProtocolIE_ID_id_RAB_Parameter_SupportedMaxBitrateList	= 219,
+	RANAP_ProtocolIE_ID_id_Requested_RAB_Parameter_SupportedMaxBitrateList	= 220,
+	RANAP_ProtocolIE_ID_id_Requested_RAB_Parameter_SupportedGuaranteedBitrateList	= 221,
+	RANAP_ProtocolIE_ID_id_Relocation_SourceRNC_ID	= 222,
+	RANAP_ProtocolIE_ID_id_Relocation_SourceExtendedRNC_ID	= 223,
+	RANAP_ProtocolIE_ID_id_EncryptionKey	= 224,
+	RANAP_ProtocolIE_ID_id_IntegrityProtectionKey	= 225,
+	RANAP_ProtocolIE_ID_id_SRVCC_HO_Indication	= 226,
+	RANAP_ProtocolIE_ID_id_SRVCC_Information	= 227,
+	RANAP_ProtocolIE_ID_id_SRVCC_Operation_Possible	= 228,
+	RANAP_ProtocolIE_ID_id_CSG_Id_List	= 229,
+	RANAP_ProtocolIE_ID_id_PSRABtobeReplaced	= 230,
+	RANAP_ProtocolIE_ID_id_E_UTRAN_Service_Handover	= 231,
+	RANAP_ProtocolIE_ID_id_UE_AggregateMaximumBitRate	= 233,
+	RANAP_ProtocolIE_ID_id_CSG_Membership_Status	= 234,
+	RANAP_ProtocolIE_ID_id_Cell_Access_Mode	= 235,
+	RANAP_ProtocolIE_ID_id_IP_Source_Address	= 236,
+	RANAP_ProtocolIE_ID_id_CSFB_Information	= 237,
+	RANAP_ProtocolIE_ID_id_PDP_TypeInformation_extension	= 238,
+	RANAP_ProtocolIE_ID_id_MSISDN	= 239,
+	RANAP_ProtocolIE_ID_id_Offload_RAB_Parameters	= 240,
+	RANAP_ProtocolIE_ID_id_LGW_TransportLayerAddress	= 241,
+	RANAP_ProtocolIE_ID_id_Correlation_ID	= 242,
+	RANAP_ProtocolIE_ID_id_IRAT_Measurement_Configuration	= 243,
+	RANAP_ProtocolIE_ID_id_MDT_Configuration	= 244,
+	RANAP_ProtocolIE_ID_id_Priority_Class_Indicator	= 245,
+	RANAP_ProtocolIE_ID_id_RNSAPRelocationParameters	= 247,
+	RANAP_ProtocolIE_ID_id_RABParametersList	= 248,
+	RANAP_ProtocolIE_ID_id_Management_Based_MDT_Allowed	= 249,
+	RANAP_ProtocolIE_ID_id_HigherBitratesThan16MbpsFlag	= 250,
+	RANAP_ProtocolIE_ID_id_Trace_Collection_Entity_IP_Addess	= 251,
+	RANAP_ProtocolIE_ID_id_End_Of_CSFB	= 252,
+	RANAP_ProtocolIE_ID_id_Time_UE_StayedInCell_EnhancedGranularity	= 253,
+	RANAP_ProtocolIE_ID_id_Out_Of_UTRAN	= 254,
+	RANAP_ProtocolIE_ID_id_TraceRecordingSessionReference	= 255,
+	RANAP_ProtocolIE_ID_id_IMSI	= 256,
+	RANAP_ProtocolIE_ID_id_HO_Cause	= 257,
+	RANAP_ProtocolIE_ID_id_VoiceSupportMatchIndicator	= 258,
+	RANAP_ProtocolIE_ID_id_RSRVCC_HO_Indication	= 259,
+	RANAP_ProtocolIE_ID_id_RSRVCC_Information	= 260,
+	RANAP_ProtocolIE_ID_id_AnchorPLMN_ID	= 261,
+	RANAP_ProtocolIE_ID_id_Tunnel_Information_for_BBF	= 262,
+	RANAP_ProtocolIE_ID_id_Management_Based_MDT_PLMN_List	= 263,
+	RANAP_ProtocolIE_ID_id_SignallingBasedMDTPLMNList	= 264,
+	RANAP_ProtocolIE_ID_id_M4Report	= 265,
+	RANAP_ProtocolIE_ID_id_M5Report	= 266,
+	RANAP_ProtocolIE_ID_id_M6Report	= 267,
+	RANAP_ProtocolIE_ID_id_M7Report	= 268,
+	RANAP_ProtocolIE_ID_id_TimingDifferenceULDL	= 269,
+	RANAP_ProtocolIE_ID_id_Serving_Cell_Identifier	= 270,
+	RANAP_ProtocolIE_ID_id_EARFCN_Extended	= 271,
+	RANAP_ProtocolIE_ID_id_RSRVCC_Operation_Possible	= 272,
+	RANAP_ProtocolIE_ID_id_SIPTO_LGW_TransportLayerAddress	= 273,
+	RANAP_ProtocolIE_ID_id_SIPTO_Correlation_ID	= 274,
+	RANAP_ProtocolIE_ID_id_LHN_ID	= 275,
+	RANAP_ProtocolIE_ID_id_Session_Re_establishment_Indicator	= 276,
+	RANAP_ProtocolIE_ID_id_LastE_UTRANPLMNIdentity	= 277,
+	RANAP_ProtocolIE_ID_id_RSRQ_Type	= 278,
+	RANAP_ProtocolIE_ID_id_RSRQ_Extension	= 279
+} e_RANAP_ProtocolIE_ID;
+
+/* RANAP_ProtocolIE-ID */
+typedef long	 RANAP_ProtocolIE_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ProtocolIE_ID;
+asn_struct_free_f RANAP_ProtocolIE_ID_free;
+asn_struct_print_f RANAP_ProtocolIE_ID_print;
+asn_constr_check_f RANAP_ProtocolIE_ID_constraint;
+ber_type_decoder_f RANAP_ProtocolIE_ID_decode_ber;
+der_type_encoder_f RANAP_ProtocolIE_ID_encode_der;
+xer_type_decoder_f RANAP_ProtocolIE_ID_decode_xer;
+xer_type_encoder_f RANAP_ProtocolIE_ID_encode_xer;
+per_type_decoder_f RANAP_ProtocolIE_ID_decode_uper;
+per_type_encoder_f RANAP_ProtocolIE_ID_encode_uper;
+per_type_decoder_f RANAP_ProtocolIE_ID_decode_aper;
+per_type_encoder_f RANAP_ProtocolIE_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ProtocolIE_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ProvidedData.c b/src/ranap/RANAP_ProvidedData.c
new file mode 100644
index 0000000..2354cc4
--- /dev/null
+++ b/src/ranap/RANAP_ProvidedData.c
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ProvidedData.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_ProvidedData_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_ProvidedData_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_ProvidedData, choice.shared_network_information),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Shared_Network_Information,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"shared-network-information"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_ProvidedData_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* shared-network-information */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_ProvidedData_specs_1 = {
+	sizeof(struct RANAP_ProvidedData),
+	offsetof(struct RANAP_ProvidedData, _asn_ctx),
+	offsetof(struct RANAP_ProvidedData, present),
+	sizeof(((struct RANAP_ProvidedData *)0)->present),
+	asn_MAP_RANAP_ProvidedData_tag2el_1,
+	1,	/* Count of tags in the map */
+	0,
+	1	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ProvidedData = {
+	"RANAP_ProvidedData",
+	"RANAP_ProvidedData",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_ProvidedData_constr_1,
+	asn_MBR_RANAP_ProvidedData_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_ProvidedData_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ProvidedData.h b/src/ranap/RANAP_ProvidedData.h
new file mode 100644
index 0000000..f35659f
--- /dev/null
+++ b/src/ranap/RANAP_ProvidedData.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ProvidedData_H_
+#define	_RANAP_ProvidedData_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Shared-Network-Information.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_ProvidedData_PR {
+	RANAP_ProvidedData_PR_NOTHING,	/* No components present */
+	RANAP_ProvidedData_PR_shared_network_information,
+	/* Extensions may appear below */
+	
+} RANAP_ProvidedData_PR;
+
+/* RANAP_ProvidedData */
+typedef struct RANAP_ProvidedData {
+	RANAP_ProvidedData_PR present;
+	union RANAP_ProvidedData_u {
+		RANAP_Shared_Network_Information_t	 shared_network_information;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_ProvidedData_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ProvidedData;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ProvidedData_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_QueuingAllowed.c b/src/ranap/RANAP_QueuingAllowed.c
new file mode 100644
index 0000000..6244198
--- /dev/null
+++ b/src/ranap/RANAP_QueuingAllowed.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_QueuingAllowed.h"
+
+int
+RANAP_QueuingAllowed_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_QueuingAllowed_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_QueuingAllowed_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_QueuingAllowed_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_QueuingAllowed_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_QueuingAllowed_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_QueuingAllowed_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_QueuingAllowed_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_QueuingAllowed_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_QueuingAllowed_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_QueuingAllowed_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_QueuingAllowed_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_QueuingAllowed_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_QueuingAllowed_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_QueuingAllowed_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_QueuingAllowed_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_QueuingAllowed_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_QueuingAllowed_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_QueuingAllowed_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_QueuingAllowed_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_QueuingAllowed_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_QueuingAllowed_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_QueuingAllowed_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 1,  1,  0l,  1l }	/* (0..1) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_QueuingAllowed_value2enum_1[] = {
+	{ 0,	20,	"queueing-not-allowed" },
+	{ 1,	16,	"queueing-allowed" }
+};
+static const unsigned int asn_MAP_RANAP_QueuingAllowed_enum2value_1[] = {
+	1,	/* queueing-allowed(1) */
+	0	/* queueing-not-allowed(0) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_QueuingAllowed_specs_1 = {
+	asn_MAP_RANAP_QueuingAllowed_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_QueuingAllowed_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_QueuingAllowed_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_QueuingAllowed = {
+	"RANAP_QueuingAllowed",
+	"RANAP_QueuingAllowed",
+	RANAP_QueuingAllowed_free,
+	RANAP_QueuingAllowed_print,
+	RANAP_QueuingAllowed_constraint,
+	RANAP_QueuingAllowed_decode_ber,
+	RANAP_QueuingAllowed_encode_der,
+	RANAP_QueuingAllowed_decode_xer,
+	RANAP_QueuingAllowed_encode_xer,
+	RANAP_QueuingAllowed_decode_uper,
+	RANAP_QueuingAllowed_encode_uper,
+	RANAP_QueuingAllowed_decode_aper,
+	RANAP_QueuingAllowed_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_QueuingAllowed_tags_1,
+	sizeof(asn_DEF_RANAP_QueuingAllowed_tags_1)
+		/sizeof(asn_DEF_RANAP_QueuingAllowed_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_QueuingAllowed_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_QueuingAllowed_tags_1)
+		/sizeof(asn_DEF_RANAP_QueuingAllowed_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_QueuingAllowed_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_QueuingAllowed_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_QueuingAllowed.h b/src/ranap/RANAP_QueuingAllowed.h
new file mode 100644
index 0000000..3cf03c8
--- /dev/null
+++ b/src/ranap/RANAP_QueuingAllowed.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_QueuingAllowed_H_
+#define	_RANAP_QueuingAllowed_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_QueuingAllowed {
+	RANAP_QueuingAllowed_queueing_not_allowed	= 0,
+	RANAP_QueuingAllowed_queueing_allowed	= 1
+} e_RANAP_QueuingAllowed;
+
+/* RANAP_QueuingAllowed */
+typedef long	 RANAP_QueuingAllowed_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_QueuingAllowed;
+asn_struct_free_f RANAP_QueuingAllowed_free;
+asn_struct_print_f RANAP_QueuingAllowed_print;
+asn_constr_check_f RANAP_QueuingAllowed_constraint;
+ber_type_decoder_f RANAP_QueuingAllowed_decode_ber;
+der_type_encoder_f RANAP_QueuingAllowed_encode_der;
+xer_type_decoder_f RANAP_QueuingAllowed_decode_xer;
+xer_type_encoder_f RANAP_QueuingAllowed_encode_xer;
+per_type_decoder_f RANAP_QueuingAllowed_decode_uper;
+per_type_encoder_f RANAP_QueuingAllowed_encode_uper;
+per_type_decoder_f RANAP_QueuingAllowed_decode_aper;
+per_type_encoder_f RANAP_QueuingAllowed_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_QueuingAllowed_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAB-AssignmentRequest.c b/src/ranap/RANAP_RAB-AssignmentRequest.c
new file mode 100644
index 0000000..6d5c90e
--- /dev/null
+++ b/src/ranap/RANAP_RAB-AssignmentRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RAB-AssignmentRequest.h"
+
+static int
+memb_rAB_AssignmentRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_rAB_AssignmentRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_rAB_AssignmentRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_rAB_AssignmentRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_rAB_AssignmentRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_rAB_AssignmentRequest_ies_specs_2 = {
+	sizeof(struct rAB_AssignmentRequest_ies),
+	offsetof(struct rAB_AssignmentRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_rAB_AssignmentRequest_ies_2 = {
+	"rAB-AssignmentRequest-ies",
+	"rAB-AssignmentRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_rAB_AssignmentRequest_ies_tags_2,
+	sizeof(asn_DEF_rAB_AssignmentRequest_ies_tags_2)
+		/sizeof(asn_DEF_rAB_AssignmentRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_rAB_AssignmentRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_rAB_AssignmentRequest_ies_tags_2)
+		/sizeof(asn_DEF_rAB_AssignmentRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_rAB_AssignmentRequest_ies_constr_2,
+	asn_MBR_rAB_AssignmentRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_rAB_AssignmentRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RAB_AssignmentRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RAB_AssignmentRequest, rAB_AssignmentRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_rAB_AssignmentRequest_ies_2,
+		memb_rAB_AssignmentRequest_ies_constraint_1,
+		&asn_PER_memb_rAB_AssignmentRequest_ies_constr_2,
+		0,
+		"rAB-AssignmentRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAB_AssignmentRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RAB_AssignmentRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rAB-AssignmentRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RAB_AssignmentRequest_specs_1 = {
+	sizeof(struct RANAP_RAB_AssignmentRequest),
+	offsetof(struct RANAP_RAB_AssignmentRequest, _asn_ctx),
+	asn_MAP_RANAP_RAB_AssignmentRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_AssignmentRequest = {
+	"RANAP_RAB-AssignmentRequest",
+	"RANAP_RAB-AssignmentRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAB_AssignmentRequest_tags_1,
+	sizeof(asn_DEF_RANAP_RAB_AssignmentRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_AssignmentRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAB_AssignmentRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAB_AssignmentRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_AssignmentRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RAB_AssignmentRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RAB_AssignmentRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAB-AssignmentRequest.h b/src/ranap/RANAP_RAB-AssignmentRequest.h
new file mode 100644
index 0000000..60c84ac
--- /dev/null
+++ b/src/ranap/RANAP_RAB-AssignmentRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RAB_AssignmentRequest_H_
+#define	_RANAP_RAB_AssignmentRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAB-AssignmentRequest */
+typedef struct RANAP_RAB_AssignmentRequest {
+	struct rAB_AssignmentRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} rAB_AssignmentRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RAB_AssignmentRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_AssignmentRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAB_AssignmentRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAB-AssignmentResponse.c b/src/ranap/RANAP_RAB-AssignmentResponse.c
new file mode 100644
index 0000000..a1565b1
--- /dev/null
+++ b/src/ranap/RANAP_RAB-AssignmentResponse.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RAB-AssignmentResponse.h"
+
+static int
+memb_rAB_AssignmentResponse_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_rAB_AssignmentResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_rAB_AssignmentResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_rAB_AssignmentResponse_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_rAB_AssignmentResponse_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_rAB_AssignmentResponse_ies_specs_2 = {
+	sizeof(struct rAB_AssignmentResponse_ies),
+	offsetof(struct rAB_AssignmentResponse_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_rAB_AssignmentResponse_ies_2 = {
+	"rAB-AssignmentResponse-ies",
+	"rAB-AssignmentResponse-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_rAB_AssignmentResponse_ies_tags_2,
+	sizeof(asn_DEF_rAB_AssignmentResponse_ies_tags_2)
+		/sizeof(asn_DEF_rAB_AssignmentResponse_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_rAB_AssignmentResponse_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_rAB_AssignmentResponse_ies_tags_2)
+		/sizeof(asn_DEF_rAB_AssignmentResponse_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_rAB_AssignmentResponse_ies_constr_2,
+	asn_MBR_rAB_AssignmentResponse_ies_2,
+	1,	/* Single element */
+	&asn_SPC_rAB_AssignmentResponse_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RAB_AssignmentResponse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RAB_AssignmentResponse, rAB_AssignmentResponse_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_rAB_AssignmentResponse_ies_2,
+		memb_rAB_AssignmentResponse_ies_constraint_1,
+		&asn_PER_memb_rAB_AssignmentResponse_ies_constr_2,
+		0,
+		"rAB-AssignmentResponse-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAB_AssignmentResponse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RAB_AssignmentResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rAB-AssignmentResponse-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RAB_AssignmentResponse_specs_1 = {
+	sizeof(struct RANAP_RAB_AssignmentResponse),
+	offsetof(struct RANAP_RAB_AssignmentResponse, _asn_ctx),
+	asn_MAP_RANAP_RAB_AssignmentResponse_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_AssignmentResponse = {
+	"RANAP_RAB-AssignmentResponse",
+	"RANAP_RAB-AssignmentResponse",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAB_AssignmentResponse_tags_1,
+	sizeof(asn_DEF_RANAP_RAB_AssignmentResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_AssignmentResponse_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAB_AssignmentResponse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAB_AssignmentResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_AssignmentResponse_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RAB_AssignmentResponse_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RAB_AssignmentResponse_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAB-AssignmentResponse.h b/src/ranap/RANAP_RAB-AssignmentResponse.h
new file mode 100644
index 0000000..a7e7655
--- /dev/null
+++ b/src/ranap/RANAP_RAB-AssignmentResponse.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RAB_AssignmentResponse_H_
+#define	_RANAP_RAB_AssignmentResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAB-AssignmentResponse */
+typedef struct RANAP_RAB_AssignmentResponse {
+	struct rAB_AssignmentResponse_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} rAB_AssignmentResponse_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RAB_AssignmentResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_AssignmentResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAB_AssignmentResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAB-AsymmetryIndicator.c b/src/ranap/RANAP_RAB-AsymmetryIndicator.c
new file mode 100644
index 0000000..50dafca
--- /dev/null
+++ b/src/ranap/RANAP_RAB-AsymmetryIndicator.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAB-AsymmetryIndicator.h"
+
+int
+RANAP_RAB_AsymmetryIndicator_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RAB_AsymmetryIndicator_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_RAB_AsymmetryIndicator_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RAB_AsymmetryIndicator_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RAB_AsymmetryIndicator_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RAB_AsymmetryIndicator_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RAB_AsymmetryIndicator_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RAB_AsymmetryIndicator_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RAB_AsymmetryIndicator_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RAB_AsymmetryIndicator_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RAB_AsymmetryIndicator_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RAB_AsymmetryIndicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RAB_AsymmetryIndicator_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RAB_AsymmetryIndicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RAB_AsymmetryIndicator_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RAB_AsymmetryIndicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RAB_AsymmetryIndicator_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RAB_AsymmetryIndicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RAB_AsymmetryIndicator_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RAB_AsymmetryIndicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RAB_AsymmetryIndicator_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RAB_AsymmetryIndicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RAB_AsymmetryIndicator_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  3l }	/* (0..3,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_RAB_AsymmetryIndicator_value2enum_1[] = {
+	{ 0,	23,	"symmetric-bidirectional" },
+	{ 1,	34,	"asymmetric-unidirectional-downlink" },
+	{ 2,	32,	"asymmetric-unidirectional-uplink" },
+	{ 3,	24,	"asymmetric-bidirectional" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_RAB_AsymmetryIndicator_enum2value_1[] = {
+	3,	/* asymmetric-bidirectional(3) */
+	1,	/* asymmetric-unidirectional-downlink(1) */
+	2,	/* asymmetric-unidirectional-uplink(2) */
+	0	/* symmetric-bidirectional(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_RAB_AsymmetryIndicator_specs_1 = {
+	asn_MAP_RANAP_RAB_AsymmetryIndicator_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_RAB_AsymmetryIndicator_enum2value_1,	/* N => "tag"; sorted by N */
+	4,	/* Number of elements in the maps */
+	5,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAB_AsymmetryIndicator_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_AsymmetryIndicator = {
+	"RANAP_RAB-AsymmetryIndicator",
+	"RANAP_RAB-AsymmetryIndicator",
+	RANAP_RAB_AsymmetryIndicator_free,
+	RANAP_RAB_AsymmetryIndicator_print,
+	RANAP_RAB_AsymmetryIndicator_constraint,
+	RANAP_RAB_AsymmetryIndicator_decode_ber,
+	RANAP_RAB_AsymmetryIndicator_encode_der,
+	RANAP_RAB_AsymmetryIndicator_decode_xer,
+	RANAP_RAB_AsymmetryIndicator_encode_xer,
+	RANAP_RAB_AsymmetryIndicator_decode_uper,
+	RANAP_RAB_AsymmetryIndicator_encode_uper,
+	RANAP_RAB_AsymmetryIndicator_decode_aper,
+	RANAP_RAB_AsymmetryIndicator_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAB_AsymmetryIndicator_tags_1,
+	sizeof(asn_DEF_RANAP_RAB_AsymmetryIndicator_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_AsymmetryIndicator_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAB_AsymmetryIndicator_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAB_AsymmetryIndicator_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_AsymmetryIndicator_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RAB_AsymmetryIndicator_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_RAB_AsymmetryIndicator_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAB-AsymmetryIndicator.h b/src/ranap/RANAP_RAB-AsymmetryIndicator.h
new file mode 100644
index 0000000..d5f5e09
--- /dev/null
+++ b/src/ranap/RANAP_RAB-AsymmetryIndicator.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAB_AsymmetryIndicator_H_
+#define	_RANAP_RAB_AsymmetryIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_RAB_AsymmetryIndicator {
+	RANAP_RAB_AsymmetryIndicator_symmetric_bidirectional	= 0,
+	RANAP_RAB_AsymmetryIndicator_asymmetric_unidirectional_downlink	= 1,
+	RANAP_RAB_AsymmetryIndicator_asymmetric_unidirectional_uplink	= 2,
+	RANAP_RAB_AsymmetryIndicator_asymmetric_bidirectional	= 3
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_RAB_AsymmetryIndicator;
+
+/* RANAP_RAB-AsymmetryIndicator */
+typedef long	 RANAP_RAB_AsymmetryIndicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_AsymmetryIndicator;
+asn_struct_free_f RANAP_RAB_AsymmetryIndicator_free;
+asn_struct_print_f RANAP_RAB_AsymmetryIndicator_print;
+asn_constr_check_f RANAP_RAB_AsymmetryIndicator_constraint;
+ber_type_decoder_f RANAP_RAB_AsymmetryIndicator_decode_ber;
+der_type_encoder_f RANAP_RAB_AsymmetryIndicator_encode_der;
+xer_type_decoder_f RANAP_RAB_AsymmetryIndicator_decode_xer;
+xer_type_encoder_f RANAP_RAB_AsymmetryIndicator_encode_xer;
+per_type_decoder_f RANAP_RAB_AsymmetryIndicator_decode_uper;
+per_type_encoder_f RANAP_RAB_AsymmetryIndicator_encode_uper;
+per_type_decoder_f RANAP_RAB_AsymmetryIndicator_decode_aper;
+per_type_encoder_f RANAP_RAB_AsymmetryIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAB_AsymmetryIndicator_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAB-ID.c b/src/ranap/RANAP_RAB-ID.c
new file mode 100644
index 0000000..7c35f0c
--- /dev/null
+++ b/src/ranap/RANAP_RAB-ID.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAB-ID.h"
+
+int
+RANAP_RAB_ID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 8l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RAB_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_BIT_STRING.free_struct;
+	td->print_struct   = asn_DEF_BIT_STRING.print_struct;
+	td->check_constraints = asn_DEF_BIT_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_BIT_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_BIT_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_BIT_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_BIT_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_BIT_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_BIT_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_BIT_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_BIT_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_BIT_STRING.per_constraints;
+	td->elements       = asn_DEF_BIT_STRING.elements;
+	td->elements_count = asn_DEF_BIT_STRING.elements_count;
+	td->specifics      = asn_DEF_BIT_STRING.specifics;
+}
+
+void
+RANAP_RAB_ID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RAB_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RAB_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RAB_ID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RAB_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RAB_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RAB_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RAB_ID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RAB_ID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RAB_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RAB_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RAB_ID_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  8l,  8l }	/* (SIZE(8..8)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAB_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_ID = {
+	"RANAP_RAB-ID",
+	"RANAP_RAB-ID",
+	RANAP_RAB_ID_free,
+	RANAP_RAB_ID_print,
+	RANAP_RAB_ID_constraint,
+	RANAP_RAB_ID_decode_ber,
+	RANAP_RAB_ID_encode_der,
+	RANAP_RAB_ID_decode_xer,
+	RANAP_RAB_ID_encode_xer,
+	RANAP_RAB_ID_decode_uper,
+	RANAP_RAB_ID_encode_uper,
+	RANAP_RAB_ID_decode_aper,
+	RANAP_RAB_ID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAB_ID_tags_1,
+	sizeof(asn_DEF_RANAP_RAB_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAB_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAB_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_ID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RAB_ID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_RAB-ID.h b/src/ranap/RANAP_RAB-ID.h
new file mode 100644
index 0000000..2166574
--- /dev/null
+++ b/src/ranap/RANAP_RAB-ID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAB_ID_H_
+#define	_RANAP_RAB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAB-ID */
+typedef BIT_STRING_t	 RANAP_RAB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_ID;
+asn_struct_free_f RANAP_RAB_ID_free;
+asn_struct_print_f RANAP_RAB_ID_print;
+asn_constr_check_f RANAP_RAB_ID_constraint;
+ber_type_decoder_f RANAP_RAB_ID_decode_ber;
+der_type_encoder_f RANAP_RAB_ID_encode_der;
+xer_type_decoder_f RANAP_RAB_ID_decode_xer;
+xer_type_encoder_f RANAP_RAB_ID_encode_xer;
+per_type_decoder_f RANAP_RAB_ID_decode_uper;
+per_type_encoder_f RANAP_RAB_ID_encode_uper;
+per_type_decoder_f RANAP_RAB_ID_decode_aper;
+per_type_encoder_f RANAP_RAB_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAB_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAB-ModifyRequest.c b/src/ranap/RANAP_RAB-ModifyRequest.c
new file mode 100644
index 0000000..4dce204
--- /dev/null
+++ b/src/ranap/RANAP_RAB-ModifyRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RAB-ModifyRequest.h"
+
+static int
+memb_rAB_ModifyRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_rAB_ModifyRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_rAB_ModifyRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_rAB_ModifyRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_rAB_ModifyRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_rAB_ModifyRequest_ies_specs_2 = {
+	sizeof(struct rAB_ModifyRequest_ies),
+	offsetof(struct rAB_ModifyRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_rAB_ModifyRequest_ies_2 = {
+	"rAB-ModifyRequest-ies",
+	"rAB-ModifyRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_rAB_ModifyRequest_ies_tags_2,
+	sizeof(asn_DEF_rAB_ModifyRequest_ies_tags_2)
+		/sizeof(asn_DEF_rAB_ModifyRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_rAB_ModifyRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_rAB_ModifyRequest_ies_tags_2)
+		/sizeof(asn_DEF_rAB_ModifyRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_rAB_ModifyRequest_ies_constr_2,
+	asn_MBR_rAB_ModifyRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_rAB_ModifyRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RAB_ModifyRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RAB_ModifyRequest, rAB_ModifyRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_rAB_ModifyRequest_ies_2,
+		memb_rAB_ModifyRequest_ies_constraint_1,
+		&asn_PER_memb_rAB_ModifyRequest_ies_constr_2,
+		0,
+		"rAB-ModifyRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAB_ModifyRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RAB_ModifyRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rAB-ModifyRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RAB_ModifyRequest_specs_1 = {
+	sizeof(struct RANAP_RAB_ModifyRequest),
+	offsetof(struct RANAP_RAB_ModifyRequest, _asn_ctx),
+	asn_MAP_RANAP_RAB_ModifyRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_ModifyRequest = {
+	"RANAP_RAB-ModifyRequest",
+	"RANAP_RAB-ModifyRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAB_ModifyRequest_tags_1,
+	sizeof(asn_DEF_RANAP_RAB_ModifyRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_ModifyRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAB_ModifyRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAB_ModifyRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_ModifyRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RAB_ModifyRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RAB_ModifyRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAB-ModifyRequest.h b/src/ranap/RANAP_RAB-ModifyRequest.h
new file mode 100644
index 0000000..cf1c8d6
--- /dev/null
+++ b/src/ranap/RANAP_RAB-ModifyRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RAB_ModifyRequest_H_
+#define	_RANAP_RAB_ModifyRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAB-ModifyRequest */
+typedef struct RANAP_RAB_ModifyRequest {
+	struct rAB_ModifyRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} rAB_ModifyRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RAB_ModifyRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_ModifyRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAB_ModifyRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAB-Parameter-ExtendedGuaranteedBitrateList.c b/src/ranap/RANAP_RAB-Parameter-ExtendedGuaranteedBitrateList.c
new file mode 100644
index 0000000..54dfd2b
--- /dev/null
+++ b/src/ranap/RANAP_RAB-Parameter-ExtendedGuaranteedBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAB-Parameter-ExtendedGuaranteedBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_ExtendedGuaranteedBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_specs_1 = {
+	sizeof(struct RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList),
+	offsetof(struct RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList = {
+	"RANAP_RAB-Parameter-ExtendedGuaranteedBitrateList",
+	"RANAP_RAB-Parameter-ExtendedGuaranteedBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_constr_1,
+	asn_MBR_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAB-Parameter-ExtendedGuaranteedBitrateList.h b/src/ranap/RANAP_RAB-Parameter-ExtendedGuaranteedBitrateList.h
new file mode 100644
index 0000000..44c5e4c
--- /dev/null
+++ b/src/ranap/RANAP_RAB-Parameter-ExtendedGuaranteedBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_H_
+#define	_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ExtendedGuaranteedBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAB-Parameter-ExtendedGuaranteedBitrateList */
+typedef struct RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList {
+	A_SEQUENCE_OF(RANAP_ExtendedGuaranteedBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAB_Parameter_ExtendedGuaranteedBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAB-Parameter-ExtendedMaxBitrateList.c b/src/ranap/RANAP_RAB-Parameter-ExtendedMaxBitrateList.c
new file mode 100644
index 0000000..840c2db
--- /dev/null
+++ b/src/ranap/RANAP_RAB-Parameter-ExtendedMaxBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAB-Parameter-ExtendedMaxBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_RAB_Parameter_ExtendedMaxBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_RAB_Parameter_ExtendedMaxBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_ExtendedMaxBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAB_Parameter_ExtendedMaxBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_RAB_Parameter_ExtendedMaxBitrateList_specs_1 = {
+	sizeof(struct RANAP_RAB_Parameter_ExtendedMaxBitrateList),
+	offsetof(struct RANAP_RAB_Parameter_ExtendedMaxBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_Parameter_ExtendedMaxBitrateList = {
+	"RANAP_RAB-Parameter-ExtendedMaxBitrateList",
+	"RANAP_RAB-Parameter-ExtendedMaxBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAB_Parameter_ExtendedMaxBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_RAB_Parameter_ExtendedMaxBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_Parameter_ExtendedMaxBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAB_Parameter_ExtendedMaxBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAB_Parameter_ExtendedMaxBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_Parameter_ExtendedMaxBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RAB_Parameter_ExtendedMaxBitrateList_constr_1,
+	asn_MBR_RANAP_RAB_Parameter_ExtendedMaxBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_RAB_Parameter_ExtendedMaxBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAB-Parameter-ExtendedMaxBitrateList.h b/src/ranap/RANAP_RAB-Parameter-ExtendedMaxBitrateList.h
new file mode 100644
index 0000000..c070574
--- /dev/null
+++ b/src/ranap/RANAP_RAB-Parameter-ExtendedMaxBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAB_Parameter_ExtendedMaxBitrateList_H_
+#define	_RANAP_RAB_Parameter_ExtendedMaxBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ExtendedMaxBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAB-Parameter-ExtendedMaxBitrateList */
+typedef struct RANAP_RAB_Parameter_ExtendedMaxBitrateList {
+	A_SEQUENCE_OF(RANAP_ExtendedMaxBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RAB_Parameter_ExtendedMaxBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_Parameter_ExtendedMaxBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAB_Parameter_ExtendedMaxBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAB-Parameter-GuaranteedBitrateList.c b/src/ranap/RANAP_RAB-Parameter-GuaranteedBitrateList.c
new file mode 100644
index 0000000..17c1d9c
--- /dev/null
+++ b/src/ranap/RANAP_RAB-Parameter-GuaranteedBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAB-Parameter-GuaranteedBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_RAB_Parameter_GuaranteedBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_RAB_Parameter_GuaranteedBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_GuaranteedBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAB_Parameter_GuaranteedBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_RAB_Parameter_GuaranteedBitrateList_specs_1 = {
+	sizeof(struct RANAP_RAB_Parameter_GuaranteedBitrateList),
+	offsetof(struct RANAP_RAB_Parameter_GuaranteedBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_Parameter_GuaranteedBitrateList = {
+	"RANAP_RAB-Parameter-GuaranteedBitrateList",
+	"RANAP_RAB-Parameter-GuaranteedBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAB_Parameter_GuaranteedBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_RAB_Parameter_GuaranteedBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_Parameter_GuaranteedBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAB_Parameter_GuaranteedBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAB_Parameter_GuaranteedBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_Parameter_GuaranteedBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RAB_Parameter_GuaranteedBitrateList_constr_1,
+	asn_MBR_RANAP_RAB_Parameter_GuaranteedBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_RAB_Parameter_GuaranteedBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAB-Parameter-GuaranteedBitrateList.h b/src/ranap/RANAP_RAB-Parameter-GuaranteedBitrateList.h
new file mode 100644
index 0000000..bf5f333
--- /dev/null
+++ b/src/ranap/RANAP_RAB-Parameter-GuaranteedBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAB_Parameter_GuaranteedBitrateList_H_
+#define	_RANAP_RAB_Parameter_GuaranteedBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_GuaranteedBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAB-Parameter-GuaranteedBitrateList */
+typedef struct RANAP_RAB_Parameter_GuaranteedBitrateList {
+	A_SEQUENCE_OF(RANAP_GuaranteedBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RAB_Parameter_GuaranteedBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_Parameter_GuaranteedBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAB_Parameter_GuaranteedBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAB-Parameter-MaxBitrateList.c b/src/ranap/RANAP_RAB-Parameter-MaxBitrateList.c
new file mode 100644
index 0000000..94dfba8
--- /dev/null
+++ b/src/ranap/RANAP_RAB-Parameter-MaxBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAB-Parameter-MaxBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_RAB_Parameter_MaxBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_RAB_Parameter_MaxBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_MaxBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAB_Parameter_MaxBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_RAB_Parameter_MaxBitrateList_specs_1 = {
+	sizeof(struct RANAP_RAB_Parameter_MaxBitrateList),
+	offsetof(struct RANAP_RAB_Parameter_MaxBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_Parameter_MaxBitrateList = {
+	"RANAP_RAB-Parameter-MaxBitrateList",
+	"RANAP_RAB-Parameter-MaxBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAB_Parameter_MaxBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_RAB_Parameter_MaxBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_Parameter_MaxBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAB_Parameter_MaxBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAB_Parameter_MaxBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_Parameter_MaxBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RAB_Parameter_MaxBitrateList_constr_1,
+	asn_MBR_RANAP_RAB_Parameter_MaxBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_RAB_Parameter_MaxBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAB-Parameter-MaxBitrateList.h b/src/ranap/RANAP_RAB-Parameter-MaxBitrateList.h
new file mode 100644
index 0000000..3001287
--- /dev/null
+++ b/src/ranap/RANAP_RAB-Parameter-MaxBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAB_Parameter_MaxBitrateList_H_
+#define	_RANAP_RAB_Parameter_MaxBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_MaxBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAB-Parameter-MaxBitrateList */
+typedef struct RANAP_RAB_Parameter_MaxBitrateList {
+	A_SEQUENCE_OF(RANAP_MaxBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RAB_Parameter_MaxBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_Parameter_MaxBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAB_Parameter_MaxBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAB-Parameters.c b/src/ranap/RANAP_RAB-Parameters.c
new file mode 100644
index 0000000..1739ce2
--- /dev/null
+++ b/src/ranap/RANAP_RAB-Parameters.c
@@ -0,0 +1,183 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAB-Parameters.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_RAB_Parameters_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RAB_Parameters, trafficClass),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TrafficClass,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"trafficClass"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RAB_Parameters, rAB_AsymmetryIndicator),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RAB_AsymmetryIndicator,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rAB-AsymmetryIndicator"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RAB_Parameters, maxBitrate),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RAB_Parameter_MaxBitrateList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"maxBitrate"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_RAB_Parameters, guaranteedBitRate),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RAB_Parameter_GuaranteedBitrateList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"guaranteedBitRate"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RAB_Parameters, deliveryOrder),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_DeliveryOrder,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"deliveryOrder"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RAB_Parameters, maxSDU_Size),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_MaxSDU_Size,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"maxSDU-Size"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RAB_Parameters, sDU_Parameters),
+		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_SDU_Parameters,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"sDU-Parameters"
+		},
+	{ ATF_POINTER, 6, offsetof(struct RANAP_RAB_Parameters, transferDelay),
+		(ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TransferDelay,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"transferDelay"
+		},
+	{ ATF_POINTER, 5, offsetof(struct RANAP_RAB_Parameters, trafficHandlingPriority),
+		(ASN_TAG_CLASS_CONTEXT | (8 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TrafficHandlingPriority,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"trafficHandlingPriority"
+		},
+	{ ATF_POINTER, 4, offsetof(struct RANAP_RAB_Parameters, allocationOrRetentionPriority),
+		(ASN_TAG_CLASS_CONTEXT | (9 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_AllocationOrRetentionPriority,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"allocationOrRetentionPriority"
+		},
+	{ ATF_POINTER, 3, offsetof(struct RANAP_RAB_Parameters, sourceStatisticsDescriptor),
+		(ASN_TAG_CLASS_CONTEXT | (10 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_SourceStatisticsDescriptor,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"sourceStatisticsDescriptor"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_RAB_Parameters, relocationRequirement),
+		(ASN_TAG_CLASS_CONTEXT | (11 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RelocationRequirement,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"relocationRequirement"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_RAB_Parameters, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (12 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_RAB_Parameters_oms_1[] = { 3, 7, 8, 9, 10, 11, 12 };
+static const ber_tlv_tag_t asn_DEF_RANAP_RAB_Parameters_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RAB_Parameters_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* trafficClass */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rAB-AsymmetryIndicator */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxBitrate */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* guaranteedBitRate */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* deliveryOrder */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maxSDU-Size */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* sDU-Parameters */
+    { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* transferDelay */
+    { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* trafficHandlingPriority */
+    { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* allocationOrRetentionPriority */
+    { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* sourceStatisticsDescriptor */
+    { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* relocationRequirement */
+    { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RAB_Parameters_specs_1 = {
+	sizeof(struct RANAP_RAB_Parameters),
+	offsetof(struct RANAP_RAB_Parameters, _asn_ctx),
+	asn_MAP_RANAP_RAB_Parameters_tag2el_1,
+	13,	/* Count of tags in the map */
+	asn_MAP_RANAP_RAB_Parameters_oms_1,	/* Optional members */
+	7, 0,	/* Root/Additions */
+	12,	/* Start extensions */
+	14	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_Parameters = {
+	"RANAP_RAB-Parameters",
+	"RANAP_RAB-Parameters",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAB_Parameters_tags_1,
+	sizeof(asn_DEF_RANAP_RAB_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_Parameters_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAB_Parameters_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAB_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_Parameters_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RAB_Parameters_1,
+	13,	/* Elements count */
+	&asn_SPC_RANAP_RAB_Parameters_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAB-Parameters.h b/src/ranap/RANAP_RAB-Parameters.h
new file mode 100644
index 0000000..2629282
--- /dev/null
+++ b/src/ranap/RANAP_RAB-Parameters.h
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAB_Parameters_H_
+#define	_RANAP_RAB_Parameters_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_TrafficClass.h"
+#include "RANAP_RAB-AsymmetryIndicator.h"
+#include "RANAP_RAB-Parameter-MaxBitrateList.h"
+#include "RANAP_RAB-Parameter-GuaranteedBitrateList.h"
+#include "RANAP_DeliveryOrder.h"
+#include "RANAP_MaxSDU-Size.h"
+#include "RANAP_SDU-Parameters.h"
+#include "RANAP_TransferDelay.h"
+#include "RANAP_TrafficHandlingPriority.h"
+#include "RANAP_AllocationOrRetentionPriority.h"
+#include "RANAP_SourceStatisticsDescriptor.h"
+#include "RANAP_RelocationRequirement.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAB-Parameters */
+typedef struct RANAP_RAB_Parameters {
+	RANAP_TrafficClass_t	 trafficClass;
+	RANAP_RAB_AsymmetryIndicator_t	 rAB_AsymmetryIndicator;
+	RANAP_RAB_Parameter_MaxBitrateList_t	 maxBitrate;
+	RANAP_RAB_Parameter_GuaranteedBitrateList_t	*guaranteedBitRate	/* OPTIONAL */;
+	RANAP_DeliveryOrder_t	 deliveryOrder;
+	RANAP_MaxSDU_Size_t	 maxSDU_Size;
+	RANAP_SDU_Parameters_t	 sDU_Parameters;
+	RANAP_TransferDelay_t	*transferDelay	/* OPTIONAL */;
+	RANAP_TrafficHandlingPriority_t	*trafficHandlingPriority	/* OPTIONAL */;
+	RANAP_AllocationOrRetentionPriority_t	*allocationOrRetentionPriority	/* OPTIONAL */;
+	RANAP_SourceStatisticsDescriptor_t	*sourceStatisticsDescriptor	/* OPTIONAL */;
+	RANAP_RelocationRequirement_t	*relocationRequirement	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RAB_Parameters_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_Parameters;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAB_Parameters_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAB-ReleaseRequest.c b/src/ranap/RANAP_RAB-ReleaseRequest.c
new file mode 100644
index 0000000..2db478b
--- /dev/null
+++ b/src/ranap/RANAP_RAB-ReleaseRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RAB-ReleaseRequest.h"
+
+static int
+memb_rAB_ReleaseRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_rAB_ReleaseRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_rAB_ReleaseRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_rAB_ReleaseRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_rAB_ReleaseRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_rAB_ReleaseRequest_ies_specs_2 = {
+	sizeof(struct rAB_ReleaseRequest_ies),
+	offsetof(struct rAB_ReleaseRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_rAB_ReleaseRequest_ies_2 = {
+	"rAB-ReleaseRequest-ies",
+	"rAB-ReleaseRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_rAB_ReleaseRequest_ies_tags_2,
+	sizeof(asn_DEF_rAB_ReleaseRequest_ies_tags_2)
+		/sizeof(asn_DEF_rAB_ReleaseRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_rAB_ReleaseRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_rAB_ReleaseRequest_ies_tags_2)
+		/sizeof(asn_DEF_rAB_ReleaseRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_rAB_ReleaseRequest_ies_constr_2,
+	asn_MBR_rAB_ReleaseRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_rAB_ReleaseRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RAB_ReleaseRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RAB_ReleaseRequest, rAB_ReleaseRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_rAB_ReleaseRequest_ies_2,
+		memb_rAB_ReleaseRequest_ies_constraint_1,
+		&asn_PER_memb_rAB_ReleaseRequest_ies_constr_2,
+		0,
+		"rAB-ReleaseRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAB_ReleaseRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RAB_ReleaseRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rAB-ReleaseRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RAB_ReleaseRequest_specs_1 = {
+	sizeof(struct RANAP_RAB_ReleaseRequest),
+	offsetof(struct RANAP_RAB_ReleaseRequest, _asn_ctx),
+	asn_MAP_RANAP_RAB_ReleaseRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_ReleaseRequest = {
+	"RANAP_RAB-ReleaseRequest",
+	"RANAP_RAB-ReleaseRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAB_ReleaseRequest_tags_1,
+	sizeof(asn_DEF_RANAP_RAB_ReleaseRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_ReleaseRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAB_ReleaseRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAB_ReleaseRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_ReleaseRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RAB_ReleaseRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RAB_ReleaseRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAB-ReleaseRequest.h b/src/ranap/RANAP_RAB-ReleaseRequest.h
new file mode 100644
index 0000000..a4ba249
--- /dev/null
+++ b/src/ranap/RANAP_RAB-ReleaseRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RAB_ReleaseRequest_H_
+#define	_RANAP_RAB_ReleaseRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAB-ReleaseRequest */
+typedef struct RANAP_RAB_ReleaseRequest {
+	struct rAB_ReleaseRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} rAB_ReleaseRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RAB_ReleaseRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_ReleaseRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAB_ReleaseRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAB-SubflowCombinationBitRate.c b/src/ranap/RANAP_RAB-SubflowCombinationBitRate.c
new file mode 100644
index 0000000..075032a
--- /dev/null
+++ b/src/ranap/RANAP_RAB-SubflowCombinationBitRate.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAB-SubflowCombinationBitRate.h"
+
+int
+RANAP_RAB_SubflowCombinationBitRate_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 16000000l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RAB_SubflowCombinationBitRate_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_RAB_SubflowCombinationBitRate_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RAB_SubflowCombinationBitRate_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RAB_SubflowCombinationBitRate_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RAB_SubflowCombinationBitRate_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RAB_SubflowCombinationBitRate_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RAB_SubflowCombinationBitRate_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RAB_SubflowCombinationBitRate_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RAB_SubflowCombinationBitRate_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RAB_SubflowCombinationBitRate_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RAB_SubflowCombinationBitRate_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RAB_SubflowCombinationBitRate_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RAB_SubflowCombinationBitRate_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RAB_SubflowCombinationBitRate_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RAB_SubflowCombinationBitRate_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RAB_SubflowCombinationBitRate_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RAB_SubflowCombinationBitRate_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RAB_SubflowCombinationBitRate_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RAB_SubflowCombinationBitRate_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RAB_SubflowCombinationBitRate_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RAB_SubflowCombinationBitRate_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RAB_SubflowCombinationBitRate_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 24, -1,  0l,  16000000l }	/* (0..16000000) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAB_SubflowCombinationBitRate_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_SubflowCombinationBitRate = {
+	"RANAP_RAB-SubflowCombinationBitRate",
+	"RANAP_RAB-SubflowCombinationBitRate",
+	RANAP_RAB_SubflowCombinationBitRate_free,
+	RANAP_RAB_SubflowCombinationBitRate_print,
+	RANAP_RAB_SubflowCombinationBitRate_constraint,
+	RANAP_RAB_SubflowCombinationBitRate_decode_ber,
+	RANAP_RAB_SubflowCombinationBitRate_encode_der,
+	RANAP_RAB_SubflowCombinationBitRate_decode_xer,
+	RANAP_RAB_SubflowCombinationBitRate_encode_xer,
+	RANAP_RAB_SubflowCombinationBitRate_decode_uper,
+	RANAP_RAB_SubflowCombinationBitRate_encode_uper,
+	RANAP_RAB_SubflowCombinationBitRate_decode_aper,
+	RANAP_RAB_SubflowCombinationBitRate_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAB_SubflowCombinationBitRate_tags_1,
+	sizeof(asn_DEF_RANAP_RAB_SubflowCombinationBitRate_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_SubflowCombinationBitRate_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAB_SubflowCombinationBitRate_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAB_SubflowCombinationBitRate_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_SubflowCombinationBitRate_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RAB_SubflowCombinationBitRate_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_RAB-SubflowCombinationBitRate.h b/src/ranap/RANAP_RAB-SubflowCombinationBitRate.h
new file mode 100644
index 0000000..6c3eaa4
--- /dev/null
+++ b/src/ranap/RANAP_RAB-SubflowCombinationBitRate.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAB_SubflowCombinationBitRate_H_
+#define	_RANAP_RAB_SubflowCombinationBitRate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAB-SubflowCombinationBitRate */
+typedef long	 RANAP_RAB_SubflowCombinationBitRate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_SubflowCombinationBitRate;
+asn_struct_free_f RANAP_RAB_SubflowCombinationBitRate_free;
+asn_struct_print_f RANAP_RAB_SubflowCombinationBitRate_print;
+asn_constr_check_f RANAP_RAB_SubflowCombinationBitRate_constraint;
+ber_type_decoder_f RANAP_RAB_SubflowCombinationBitRate_decode_ber;
+der_type_encoder_f RANAP_RAB_SubflowCombinationBitRate_encode_der;
+xer_type_decoder_f RANAP_RAB_SubflowCombinationBitRate_decode_xer;
+xer_type_encoder_f RANAP_RAB_SubflowCombinationBitRate_encode_xer;
+per_type_decoder_f RANAP_RAB_SubflowCombinationBitRate_decode_uper;
+per_type_encoder_f RANAP_RAB_SubflowCombinationBitRate_encode_uper;
+per_type_decoder_f RANAP_RAB_SubflowCombinationBitRate_decode_aper;
+per_type_encoder_f RANAP_RAB_SubflowCombinationBitRate_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAB_SubflowCombinationBitRate_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAB-TrCH-Mapping.c b/src/ranap/RANAP_RAB-TrCH-Mapping.c
new file mode 100644
index 0000000..b73cd89
--- /dev/null
+++ b/src/ranap/RANAP_RAB-TrCH-Mapping.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAB-TrCH-Mapping.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_RAB_TrCH_Mapping_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 8,  8,  1l,  256l }	/* (SIZE(1..256)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_RAB_TrCH_Mapping_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_RAB_TrCH_MappingItem,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAB_TrCH_Mapping_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_RAB_TrCH_Mapping_specs_1 = {
+	sizeof(struct RANAP_RAB_TrCH_Mapping),
+	offsetof(struct RANAP_RAB_TrCH_Mapping, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_TrCH_Mapping = {
+	"RANAP_RAB-TrCH-Mapping",
+	"RANAP_RAB-TrCH-Mapping",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAB_TrCH_Mapping_tags_1,
+	sizeof(asn_DEF_RANAP_RAB_TrCH_Mapping_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_TrCH_Mapping_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAB_TrCH_Mapping_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAB_TrCH_Mapping_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_TrCH_Mapping_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RAB_TrCH_Mapping_constr_1,
+	asn_MBR_RANAP_RAB_TrCH_Mapping_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_RAB_TrCH_Mapping_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAB-TrCH-Mapping.h b/src/ranap/RANAP_RAB-TrCH-Mapping.h
new file mode 100644
index 0000000..d6f2027
--- /dev/null
+++ b/src/ranap/RANAP_RAB-TrCH-Mapping.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAB_TrCH_Mapping_H_
+#define	_RANAP_RAB_TrCH_Mapping_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_RAB-TrCH-MappingItem.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAB-TrCH-Mapping */
+typedef struct RANAP_RAB_TrCH_Mapping {
+	A_SEQUENCE_OF(RANAP_RAB_TrCH_MappingItem_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RAB_TrCH_Mapping_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_TrCH_Mapping;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAB_TrCH_Mapping_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAB-TrCH-MappingItem.c b/src/ranap/RANAP_RAB-TrCH-MappingItem.c
new file mode 100644
index 0000000..ec6ef62
--- /dev/null
+++ b/src/ranap/RANAP_RAB-TrCH-MappingItem.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAB-TrCH-MappingItem.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_RAB_TrCH_MappingItem_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RAB_TrCH_MappingItem, rAB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RAB_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rAB-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RAB_TrCH_MappingItem, trCH_ID_List),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TrCH_ID_List,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"trCH-ID-List"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_RAB_TrCH_MappingItem, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_RAB_TrCH_MappingItem_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_RAB_TrCH_MappingItem_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RAB_TrCH_MappingItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rAB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* trCH-ID-List */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RAB_TrCH_MappingItem_specs_1 = {
+	sizeof(struct RANAP_RAB_TrCH_MappingItem),
+	offsetof(struct RANAP_RAB_TrCH_MappingItem, _asn_ctx),
+	asn_MAP_RANAP_RAB_TrCH_MappingItem_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_RAB_TrCH_MappingItem_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_TrCH_MappingItem = {
+	"RANAP_RAB-TrCH-MappingItem",
+	"RANAP_RAB-TrCH-MappingItem",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAB_TrCH_MappingItem_tags_1,
+	sizeof(asn_DEF_RANAP_RAB_TrCH_MappingItem_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_TrCH_MappingItem_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAB_TrCH_MappingItem_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAB_TrCH_MappingItem_tags_1)
+		/sizeof(asn_DEF_RANAP_RAB_TrCH_MappingItem_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RAB_TrCH_MappingItem_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_RAB_TrCH_MappingItem_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAB-TrCH-MappingItem.h b/src/ranap/RANAP_RAB-TrCH-MappingItem.h
new file mode 100644
index 0000000..a14fa91
--- /dev/null
+++ b/src/ranap/RANAP_RAB-TrCH-MappingItem.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAB_TrCH_MappingItem_H_
+#define	_RANAP_RAB_TrCH_MappingItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_RAB-ID.h"
+#include "RANAP_TrCH-ID-List.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAB-TrCH-MappingItem */
+typedef struct RANAP_RAB_TrCH_MappingItem {
+	RANAP_RAB_ID_t	 rAB_ID;
+	RANAP_TrCH_ID_List_t	 trCH_ID_List;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RAB_TrCH_MappingItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_TrCH_MappingItem;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAB_TrCH_MappingItem_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RABDataVolumeReport.c b/src/ranap/RANAP_RABDataVolumeReport.c
new file mode 100644
index 0000000..06d21b6
--- /dev/null
+++ b/src/ranap/RANAP_RABDataVolumeReport.c
@@ -0,0 +1,135 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RABDataVolumeReport.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_RABDataVolumeReport_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct Member, dl_UnsuccessfullyTransmittedDataVolume),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_UnsuccessfullyTransmittedDataVolume,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"dl-UnsuccessfullyTransmittedDataVolume"
+		},
+	{ ATF_POINTER, 2, offsetof(struct Member, dataVolumeReference),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_DataVolumeReference,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"dataVolumeReference"
+		},
+	{ ATF_POINTER, 1, offsetof(struct Member, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_Member_oms_2[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dl-UnsuccessfullyTransmittedDataVolume */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dataVolumeReference */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+	sizeof(struct Member),
+	offsetof(struct Member, _asn_ctx),
+	asn_MAP_Member_tag2el_2,
+	3,	/* Count of tags in the map */
+	asn_MAP_Member_oms_2,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+	"SEQUENCE",
+	"SEQUENCE",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_Member_tags_2,
+	sizeof(asn_DEF_Member_tags_2)
+		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	asn_DEF_Member_tags_2,	/* Same as above */
+	sizeof(asn_DEF_Member_tags_2)
+		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_Member_2,
+	3,	/* Elements count */
+	&asn_SPC_Member_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RABDataVolumeReport_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_Member_2,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RABDataVolumeReport_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_RABDataVolumeReport_specs_1 = {
+	sizeof(struct RANAP_RABDataVolumeReport),
+	offsetof(struct RANAP_RABDataVolumeReport, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RABDataVolumeReport = {
+	"RANAP_RABDataVolumeReport",
+	"RANAP_RABDataVolumeReport",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RABDataVolumeReport_tags_1,
+	sizeof(asn_DEF_RANAP_RABDataVolumeReport_tags_1)
+		/sizeof(asn_DEF_RANAP_RABDataVolumeReport_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RABDataVolumeReport_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RABDataVolumeReport_tags_1)
+		/sizeof(asn_DEF_RANAP_RABDataVolumeReport_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RABDataVolumeReport_constr_1,
+	asn_MBR_RANAP_RABDataVolumeReport_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_RABDataVolumeReport_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RABDataVolumeReport.h b/src/ranap/RANAP_RABDataVolumeReport.h
new file mode 100644
index 0000000..904c275
--- /dev/null
+++ b/src/ranap/RANAP_RABDataVolumeReport.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RABDataVolumeReport_H_
+#define	_RANAP_RABDataVolumeReport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "RANAP_UnsuccessfullyTransmittedDataVolume.h"
+#include "RANAP_DataVolumeReference.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RABDataVolumeReport */
+typedef struct RANAP_RABDataVolumeReport {
+	A_SEQUENCE_OF(struct Member {
+		RANAP_UnsuccessfullyTransmittedDataVolume_t	 dl_UnsuccessfullyTransmittedDataVolume;
+		RANAP_DataVolumeReference_t	*dataVolumeReference	/* OPTIONAL */;
+		RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RABDataVolumeReport_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RABDataVolumeReport;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RABDataVolumeReport_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RABParametersList.c b/src/ranap/RANAP_RABParametersList.c
new file mode 100644
index 0000000..d9193c3
--- /dev/null
+++ b/src/ranap/RANAP_RABParametersList.c
@@ -0,0 +1,155 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RABParametersList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_RABParametersList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 8,  8,  1l,  256l }	/* (SIZE(1..256)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_MemberA_2[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct MemberA, rab_Id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RAB_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rab-Id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct MemberA, cn_domain),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CN_DomainIndicator,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"cn-domain"
+		},
+	{ ATF_POINTER, 3, offsetof(struct MemberA, rabDataVolumeReport),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RABDataVolumeReport,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rabDataVolumeReport"
+		},
+	{ ATF_POINTER, 2, offsetof(struct MemberA, upInformation),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_UPInformation,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"upInformation"
+		},
+	{ ATF_POINTER, 1, offsetof(struct MemberA, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_MemberA_oms_2[] = { 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_MemberA_tags_2[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MemberA_tag2el_2[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rab-Id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cn-domain */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rabDataVolumeReport */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* upInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_MemberA_specs_2 = {
+	sizeof(struct MemberA),
+	offsetof(struct MemberA, _asn_ctx),
+	asn_MAP_MemberA_tag2el_2,
+	5,	/* Count of tags in the map */
+	asn_MAP_MemberA_oms_2,	/* Optional members */
+	3, 0,	/* Root/Additions */
+	4,	/* Start extensions */
+	6	/* Stop extensions */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_MemberA_2 = {
+	"SEQUENCE",
+	"SEQUENCE",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_MemberA_tags_2,
+	sizeof(asn_DEF_MemberA_tags_2)
+		/sizeof(asn_DEF_MemberA_tags_2[0]), /* 1 */
+	asn_DEF_MemberA_tags_2,	/* Same as above */
+	sizeof(asn_DEF_MemberA_tags_2)
+		/sizeof(asn_DEF_MemberA_tags_2[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_MemberA_2,
+	5,	/* Elements count */
+	&asn_SPC_MemberA_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RABParametersList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_MemberA_2,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RABParametersList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_RABParametersList_specs_1 = {
+	sizeof(struct RANAP_RABParametersList),
+	offsetof(struct RANAP_RABParametersList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RABParametersList = {
+	"RANAP_RABParametersList",
+	"RANAP_RABParametersList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RABParametersList_tags_1,
+	sizeof(asn_DEF_RANAP_RABParametersList_tags_1)
+		/sizeof(asn_DEF_RANAP_RABParametersList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RABParametersList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RABParametersList_tags_1)
+		/sizeof(asn_DEF_RANAP_RABParametersList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RABParametersList_constr_1,
+	asn_MBR_RANAP_RABParametersList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_RABParametersList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RABParametersList.h b/src/ranap/RANAP_RABParametersList.h
new file mode 100644
index 0000000..0208cda
--- /dev/null
+++ b/src/ranap/RANAP_RABParametersList.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RABParametersList_H_
+#define	_RANAP_RABParametersList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "RANAP_RAB-ID.h"
+#include "RANAP_CN-DomainIndicator.h"
+#include "RANAP_RABDataVolumeReport.h"
+#include "RANAP_UPInformation.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RABParametersList */
+typedef struct RANAP_RABParametersList {
+	A_SEQUENCE_OF(struct MemberA {
+		RANAP_RAB_ID_t	 rab_Id;
+		RANAP_CN_DomainIndicator_t	 cn_domain;
+		RANAP_RABDataVolumeReport_t	*rabDataVolumeReport	/* OPTIONAL */;
+		RANAP_UPInformation_t	*upInformation	/* OPTIONAL */;
+		RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RABParametersList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RABParametersList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RABParametersList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RABased.c b/src/ranap/RANAP_RABased.c
new file mode 100644
index 0000000..46b5bf0
--- /dev/null
+++ b/src/ranap/RANAP_RABased.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RABased.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_RABased_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RABased, raiList),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RAI_List,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"raiList"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_RABased, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_RABased_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_RABased_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RABased_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* raiList */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RABased_specs_1 = {
+	sizeof(struct RANAP_RABased),
+	offsetof(struct RANAP_RABased, _asn_ctx),
+	asn_MAP_RANAP_RABased_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_RABased_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RABased = {
+	"RANAP_RABased",
+	"RANAP_RABased",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RABased_tags_1,
+	sizeof(asn_DEF_RANAP_RABased_tags_1)
+		/sizeof(asn_DEF_RANAP_RABased_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RABased_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RABased_tags_1)
+		/sizeof(asn_DEF_RANAP_RABased_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RABased_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_RABased_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RABased.h b/src/ranap/RANAP_RABased.h
new file mode 100644
index 0000000..acd2c52
--- /dev/null
+++ b/src/ranap/RANAP_RABased.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RABased_H_
+#define	_RANAP_RABased_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_RAI-List.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RABased */
+typedef struct RANAP_RABased {
+	RANAP_RAI_List_t	 raiList;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RABased_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RABased;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RABased_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAC.c b/src/ranap/RANAP_RAC.c
new file mode 100644
index 0000000..6bf650a
--- /dev/null
+++ b/src/ranap/RANAP_RAC.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAC.h"
+
+int
+RANAP_RAC_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 1l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RAC_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_RAC_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RAC_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RAC_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RAC_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RAC_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RAC_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RAC_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RAC_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RAC_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RAC_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RAC_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RAC_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RAC_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RAC_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RAC_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RAC_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RAC_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RAC_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RAC_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RAC_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RAC_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  1l,  1l }	/* (SIZE(1..1)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAC_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAC = {
+	"RANAP_RAC",
+	"RANAP_RAC",
+	RANAP_RAC_free,
+	RANAP_RAC_print,
+	RANAP_RAC_constraint,
+	RANAP_RAC_decode_ber,
+	RANAP_RAC_encode_der,
+	RANAP_RAC_decode_xer,
+	RANAP_RAC_encode_xer,
+	RANAP_RAC_decode_uper,
+	RANAP_RAC_encode_uper,
+	RANAP_RAC_decode_aper,
+	RANAP_RAC_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAC_tags_1,
+	sizeof(asn_DEF_RANAP_RAC_tags_1)
+		/sizeof(asn_DEF_RANAP_RAC_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAC_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAC_tags_1)
+		/sizeof(asn_DEF_RANAP_RAC_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RAC_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_RAC.h b/src/ranap/RANAP_RAC.h
new file mode 100644
index 0000000..1de733a
--- /dev/null
+++ b/src/ranap/RANAP_RAC.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAC_H_
+#define	_RANAP_RAC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAC */
+typedef OCTET_STRING_t	 RANAP_RAC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAC;
+asn_struct_free_f RANAP_RAC_free;
+asn_struct_print_f RANAP_RAC_print;
+asn_constr_check_f RANAP_RAC_constraint;
+ber_type_decoder_f RANAP_RAC_decode_ber;
+der_type_encoder_f RANAP_RAC_encode_der;
+xer_type_decoder_f RANAP_RAC_decode_xer;
+xer_type_encoder_f RANAP_RAC_encode_xer;
+per_type_decoder_f RANAP_RAC_decode_uper;
+per_type_encoder_f RANAP_RAC_encode_uper;
+per_type_decoder_f RANAP_RAC_decode_aper;
+per_type_encoder_f RANAP_RAC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAC_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAI-List.c b/src/ranap/RANAP_RAI-List.c
new file mode 100644
index 0000000..165ca0d
--- /dev/null
+++ b/src/ranap/RANAP_RAI-List.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAI-List.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_RAI_List_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 3,  3,  1l,  8l }	/* (SIZE(1..8)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_RAI_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_RAI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAI_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_RAI_List_specs_1 = {
+	sizeof(struct RANAP_RAI_List),
+	offsetof(struct RANAP_RAI_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAI_List = {
+	"RANAP_RAI-List",
+	"RANAP_RAI-List",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAI_List_tags_1,
+	sizeof(asn_DEF_RANAP_RAI_List_tags_1)
+		/sizeof(asn_DEF_RANAP_RAI_List_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAI_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAI_List_tags_1)
+		/sizeof(asn_DEF_RANAP_RAI_List_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RAI_List_constr_1,
+	asn_MBR_RANAP_RAI_List_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_RAI_List_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAI-List.h b/src/ranap/RANAP_RAI-List.h
new file mode 100644
index 0000000..bddb466
--- /dev/null
+++ b/src/ranap/RANAP_RAI-List.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAI_List_H_
+#define	_RANAP_RAI_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_RAI.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAI-List */
+typedef struct RANAP_RAI_List {
+	A_SEQUENCE_OF(RANAP_RAI_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RAI_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAI_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAI_List_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAI.c b/src/ranap/RANAP_RAI.c
new file mode 100644
index 0000000..2e62967
--- /dev/null
+++ b/src/ranap/RANAP_RAI.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAI.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_RAI_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RAI, lAI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_LAI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"lAI"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RAI, rAC),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RAC,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rAC"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_RAI, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_RAI_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_RAI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RAI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lAI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rAC */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RAI_specs_1 = {
+	sizeof(struct RANAP_RAI),
+	offsetof(struct RANAP_RAI, _asn_ctx),
+	asn_MAP_RANAP_RAI_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_RAI_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAI = {
+	"RANAP_RAI",
+	"RANAP_RAI",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAI_tags_1,
+	sizeof(asn_DEF_RANAP_RAI_tags_1)
+		/sizeof(asn_DEF_RANAP_RAI_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAI_tags_1)
+		/sizeof(asn_DEF_RANAP_RAI_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RAI_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_RAI_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAI.h b/src/ranap/RANAP_RAI.h
new file mode 100644
index 0000000..b9aa4c0
--- /dev/null
+++ b/src/ranap/RANAP_RAI.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAI_H_
+#define	_RANAP_RAI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_LAI.h"
+#include "RANAP_RAC.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAI */
+typedef struct RANAP_RAI {
+	RANAP_LAI_t	 lAI;
+	RANAP_RAC_t	 rAC;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RAI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAI;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAI_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAListofIdleModeUEs.c b/src/ranap/RANAP_RAListofIdleModeUEs.c
new file mode 100644
index 0000000..694b3cc
--- /dev/null
+++ b/src/ranap/RANAP_RAListofIdleModeUEs.c
@@ -0,0 +1,233 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAListofIdleModeUEs.h"
+
+static int
+emptyFullRAListofIdleModeUEs_3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+emptyFullRAListofIdleModeUEs_3_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+static void
+emptyFullRAListofIdleModeUEs_3_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	emptyFullRAListofIdleModeUEs_3_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+static int
+emptyFullRAListofIdleModeUEs_3_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	emptyFullRAListofIdleModeUEs_3_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+static asn_dec_rval_t
+emptyFullRAListofIdleModeUEs_3_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	emptyFullRAListofIdleModeUEs_3_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+static asn_enc_rval_t
+emptyFullRAListofIdleModeUEs_3_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	emptyFullRAListofIdleModeUEs_3_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+static asn_dec_rval_t
+emptyFullRAListofIdleModeUEs_3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	emptyFullRAListofIdleModeUEs_3_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+static asn_enc_rval_t
+emptyFullRAListofIdleModeUEs_3_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	emptyFullRAListofIdleModeUEs_3_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+static asn_dec_rval_t
+emptyFullRAListofIdleModeUEs_3_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	emptyFullRAListofIdleModeUEs_3_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_enc_rval_t
+emptyFullRAListofIdleModeUEs_3_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	emptyFullRAListofIdleModeUEs_3_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_enc_rval_t
+emptyFullRAListofIdleModeUEs_3_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	emptyFullRAListofIdleModeUEs_3_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_dec_rval_t
+emptyFullRAListofIdleModeUEs_3_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	emptyFullRAListofIdleModeUEs_3_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_emptyFullRAListofIdleModeUEs_constr_3 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_type_RANAP_RAListofIdleModeUEs_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_emptyFullRAListofIdleModeUEs_value2enum_3[] = {
+	{ 0,	9,	"emptylist" },
+	{ 1,	8,	"fulllist" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_emptyFullRAListofIdleModeUEs_enum2value_3[] = {
+	0,	/* emptylist(0) */
+	1	/* fulllist(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_emptyFullRAListofIdleModeUEs_specs_3 = {
+	asn_MAP_emptyFullRAListofIdleModeUEs_value2enum_3,	/* "tag" => N; sorted by tag */
+	asn_MAP_emptyFullRAListofIdleModeUEs_enum2value_3,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_emptyFullRAListofIdleModeUEs_tags_3[] = {
+	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_emptyFullRAListofIdleModeUEs_3 = {
+	"emptyFullRAListofIdleModeUEs",
+	"emptyFullRAListofIdleModeUEs",
+	emptyFullRAListofIdleModeUEs_3_free,
+	emptyFullRAListofIdleModeUEs_3_print,
+	emptyFullRAListofIdleModeUEs_3_constraint,
+	emptyFullRAListofIdleModeUEs_3_decode_ber,
+	emptyFullRAListofIdleModeUEs_3_encode_der,
+	emptyFullRAListofIdleModeUEs_3_decode_xer,
+	emptyFullRAListofIdleModeUEs_3_encode_xer,
+	emptyFullRAListofIdleModeUEs_3_decode_uper,
+	emptyFullRAListofIdleModeUEs_3_encode_uper,
+	emptyFullRAListofIdleModeUEs_3_decode_aper,
+	emptyFullRAListofIdleModeUEs_3_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_emptyFullRAListofIdleModeUEs_tags_3,
+	sizeof(asn_DEF_emptyFullRAListofIdleModeUEs_tags_3)
+		/sizeof(asn_DEF_emptyFullRAListofIdleModeUEs_tags_3[0]) - 1, /* 1 */
+	asn_DEF_emptyFullRAListofIdleModeUEs_tags_3,	/* Same as above */
+	sizeof(asn_DEF_emptyFullRAListofIdleModeUEs_tags_3)
+		/sizeof(asn_DEF_emptyFullRAListofIdleModeUEs_tags_3[0]), /* 2 */
+	&asn_PER_type_emptyFullRAListofIdleModeUEs_constr_3,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_emptyFullRAListofIdleModeUEs_specs_3	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RAListofIdleModeUEs_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RAListofIdleModeUEs, choice.notEmptyRAListofIdleModeUEs),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_NotEmptyRAListofIdleModeUEs,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"notEmptyRAListofIdleModeUEs"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RAListofIdleModeUEs, choice.emptyFullRAListofIdleModeUEs),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_emptyFullRAListofIdleModeUEs_3,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"emptyFullRAListofIdleModeUEs"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RAListofIdleModeUEs_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* notEmptyRAListofIdleModeUEs */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* emptyFullRAListofIdleModeUEs */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_RAListofIdleModeUEs_specs_1 = {
+	sizeof(struct RANAP_RAListofIdleModeUEs),
+	offsetof(struct RANAP_RAListofIdleModeUEs, _asn_ctx),
+	offsetof(struct RANAP_RAListofIdleModeUEs, present),
+	sizeof(((struct RANAP_RAListofIdleModeUEs *)0)->present),
+	asn_MAP_RANAP_RAListofIdleModeUEs_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAListofIdleModeUEs = {
+	"RANAP_RAListofIdleModeUEs",
+	"RANAP_RAListofIdleModeUEs",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_RAListofIdleModeUEs_constr_1,
+	asn_MBR_RANAP_RAListofIdleModeUEs_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_RAListofIdleModeUEs_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAListofIdleModeUEs.h b/src/ranap/RANAP_RAListofIdleModeUEs.h
new file mode 100644
index 0000000..db5f7c1
--- /dev/null
+++ b/src/ranap/RANAP_RAListofIdleModeUEs.h
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAListofIdleModeUEs_H_
+#define	_RANAP_RAListofIdleModeUEs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_NotEmptyRAListofIdleModeUEs.h"
+#include <NativeEnumerated.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_RAListofIdleModeUEs_PR {
+	RANAP_RAListofIdleModeUEs_PR_NOTHING,	/* No components present */
+	RANAP_RAListofIdleModeUEs_PR_notEmptyRAListofIdleModeUEs,
+	RANAP_RAListofIdleModeUEs_PR_emptyFullRAListofIdleModeUEs,
+	/* Extensions may appear below */
+	
+} RANAP_RAListofIdleModeUEs_PR;
+typedef enum emptyFullRAListofIdleModeUEs {
+	emptyFullRAListofIdleModeUEs_emptylist	= 0,
+	emptyFullRAListofIdleModeUEs_fulllist	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_emptyFullRAListofIdleModeUEs;
+
+/* RANAP_RAListofIdleModeUEs */
+typedef struct RANAP_RAListofIdleModeUEs {
+	RANAP_RAListofIdleModeUEs_PR present;
+	union RANAP_RAListofIdleModeUEs_u {
+		RANAP_NotEmptyRAListofIdleModeUEs_t	 notEmptyRAListofIdleModeUEs;
+		long	 emptyFullRAListofIdleModeUEs;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RAListofIdleModeUEs_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_emptyFullRAListofIdleModeUEs_3;	// (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAListofIdleModeUEs;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAListofIdleModeUEs_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAListwithNoIdleModeUEsAnyMore.c b/src/ranap/RANAP_RAListwithNoIdleModeUEsAnyMore.c
new file mode 100644
index 0000000..2bfeeb3
--- /dev/null
+++ b/src/ranap/RANAP_RAListwithNoIdleModeUEsAnyMore.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAListwithNoIdleModeUEsAnyMore.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_RAListwithNoIdleModeUEsAnyMore_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16, -1,  1l,  65536l }	/* (SIZE(1..65536)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_RAListwithNoIdleModeUEsAnyMore_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_RAC,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAListwithNoIdleModeUEsAnyMore_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_RAListwithNoIdleModeUEsAnyMore_specs_1 = {
+	sizeof(struct RANAP_RAListwithNoIdleModeUEsAnyMore),
+	offsetof(struct RANAP_RAListwithNoIdleModeUEsAnyMore, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAListwithNoIdleModeUEsAnyMore = {
+	"RANAP_RAListwithNoIdleModeUEsAnyMore",
+	"RANAP_RAListwithNoIdleModeUEsAnyMore",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAListwithNoIdleModeUEsAnyMore_tags_1,
+	sizeof(asn_DEF_RANAP_RAListwithNoIdleModeUEsAnyMore_tags_1)
+		/sizeof(asn_DEF_RANAP_RAListwithNoIdleModeUEsAnyMore_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAListwithNoIdleModeUEsAnyMore_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAListwithNoIdleModeUEsAnyMore_tags_1)
+		/sizeof(asn_DEF_RANAP_RAListwithNoIdleModeUEsAnyMore_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RAListwithNoIdleModeUEsAnyMore_constr_1,
+	asn_MBR_RANAP_RAListwithNoIdleModeUEsAnyMore_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_RAListwithNoIdleModeUEsAnyMore_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAListwithNoIdleModeUEsAnyMore.h b/src/ranap/RANAP_RAListwithNoIdleModeUEsAnyMore.h
new file mode 100644
index 0000000..0a9f0da
--- /dev/null
+++ b/src/ranap/RANAP_RAListwithNoIdleModeUEsAnyMore.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAListwithNoIdleModeUEsAnyMore_H_
+#define	_RANAP_RAListwithNoIdleModeUEsAnyMore_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_RAC.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAListwithNoIdleModeUEsAnyMore */
+typedef struct RANAP_RAListwithNoIdleModeUEsAnyMore {
+	A_SEQUENCE_OF(RANAP_RAC_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RAListwithNoIdleModeUEsAnyMore_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAListwithNoIdleModeUEsAnyMore;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAListwithNoIdleModeUEsAnyMore_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RANAP-EnhancedRelocationInformationRequest.c b/src/ranap/RANAP_RANAP-EnhancedRelocationInformationRequest.c
new file mode 100644
index 0000000..a79bbda
--- /dev/null
+++ b/src/ranap/RANAP_RANAP-EnhancedRelocationInformationRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RANAP-EnhancedRelocationInformationRequest.h"
+
+static int
+memb_rANAP_EnhancedRelocationInformationRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_rANAP_EnhancedRelocationInformationRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_rANAP_EnhancedRelocationInformationRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_rANAP_EnhancedRelocationInformationRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_rANAP_EnhancedRelocationInformationRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_rANAP_EnhancedRelocationInformationRequest_ies_specs_2 = {
+	sizeof(struct rANAP_EnhancedRelocationInformationRequest_ies),
+	offsetof(struct rANAP_EnhancedRelocationInformationRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_rANAP_EnhancedRelocationInformationRequest_ies_2 = {
+	"rANAP-EnhancedRelocationInformationRequest-ies",
+	"rANAP-EnhancedRelocationInformationRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_rANAP_EnhancedRelocationInformationRequest_ies_tags_2,
+	sizeof(asn_DEF_rANAP_EnhancedRelocationInformationRequest_ies_tags_2)
+		/sizeof(asn_DEF_rANAP_EnhancedRelocationInformationRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_rANAP_EnhancedRelocationInformationRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_rANAP_EnhancedRelocationInformationRequest_ies_tags_2)
+		/sizeof(asn_DEF_rANAP_EnhancedRelocationInformationRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_rANAP_EnhancedRelocationInformationRequest_ies_constr_2,
+	asn_MBR_rANAP_EnhancedRelocationInformationRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_rANAP_EnhancedRelocationInformationRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RANAP_EnhancedRelocationInformationRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RANAP_EnhancedRelocationInformationRequest, rANAP_EnhancedRelocationInformationRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_rANAP_EnhancedRelocationInformationRequest_ies_2,
+		memb_rANAP_EnhancedRelocationInformationRequest_ies_constraint_1,
+		&asn_PER_memb_rANAP_EnhancedRelocationInformationRequest_ies_constr_2,
+		0,
+		"rANAP-EnhancedRelocationInformationRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RANAP_EnhancedRelocationInformationRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RANAP_EnhancedRelocationInformationRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rANAP-EnhancedRelocationInformationRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RANAP_EnhancedRelocationInformationRequest_specs_1 = {
+	sizeof(struct RANAP_RANAP_EnhancedRelocationInformationRequest),
+	offsetof(struct RANAP_RANAP_EnhancedRelocationInformationRequest, _asn_ctx),
+	asn_MAP_RANAP_RANAP_EnhancedRelocationInformationRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RANAP_EnhancedRelocationInformationRequest = {
+	"RANAP_RANAP-EnhancedRelocationInformationRequest",
+	"RANAP_RANAP-EnhancedRelocationInformationRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RANAP_EnhancedRelocationInformationRequest_tags_1,
+	sizeof(asn_DEF_RANAP_RANAP_EnhancedRelocationInformationRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_RANAP_EnhancedRelocationInformationRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RANAP_EnhancedRelocationInformationRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RANAP_EnhancedRelocationInformationRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_RANAP_EnhancedRelocationInformationRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RANAP_EnhancedRelocationInformationRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RANAP_EnhancedRelocationInformationRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RANAP-EnhancedRelocationInformationRequest.h b/src/ranap/RANAP_RANAP-EnhancedRelocationInformationRequest.h
new file mode 100644
index 0000000..6fdaead
--- /dev/null
+++ b/src/ranap/RANAP_RANAP-EnhancedRelocationInformationRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RANAP_EnhancedRelocationInformationRequest_H_
+#define	_RANAP_RANAP_EnhancedRelocationInformationRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RANAP-EnhancedRelocationInformationRequest */
+typedef struct RANAP_RANAP_EnhancedRelocationInformationRequest {
+	struct rANAP_EnhancedRelocationInformationRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} rANAP_EnhancedRelocationInformationRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RANAP_EnhancedRelocationInformationRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RANAP_EnhancedRelocationInformationRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RANAP_EnhancedRelocationInformationRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RANAP-EnhancedRelocationInformationResponse.c b/src/ranap/RANAP_RANAP-EnhancedRelocationInformationResponse.c
new file mode 100644
index 0000000..6f29883
--- /dev/null
+++ b/src/ranap/RANAP_RANAP-EnhancedRelocationInformationResponse.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RANAP-EnhancedRelocationInformationResponse.h"
+
+static int
+memb_rANAP_EnhancedRelocationInformationResponse_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_rANAP_EnhancedRelocationInformationResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_rANAP_EnhancedRelocationInformationResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_rANAP_EnhancedRelocationInformationResponse_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_rANAP_EnhancedRelocationInformationResponse_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_rANAP_EnhancedRelocationInformationResponse_ies_specs_2 = {
+	sizeof(struct rANAP_EnhancedRelocationInformationResponse_ies),
+	offsetof(struct rANAP_EnhancedRelocationInformationResponse_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_rANAP_EnhancedRelocationInformationResponse_ies_2 = {
+	"rANAP-EnhancedRelocationInformationResponse-ies",
+	"rANAP-EnhancedRelocationInformationResponse-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_rANAP_EnhancedRelocationInformationResponse_ies_tags_2,
+	sizeof(asn_DEF_rANAP_EnhancedRelocationInformationResponse_ies_tags_2)
+		/sizeof(asn_DEF_rANAP_EnhancedRelocationInformationResponse_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_rANAP_EnhancedRelocationInformationResponse_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_rANAP_EnhancedRelocationInformationResponse_ies_tags_2)
+		/sizeof(asn_DEF_rANAP_EnhancedRelocationInformationResponse_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_rANAP_EnhancedRelocationInformationResponse_ies_constr_2,
+	asn_MBR_rANAP_EnhancedRelocationInformationResponse_ies_2,
+	1,	/* Single element */
+	&asn_SPC_rANAP_EnhancedRelocationInformationResponse_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RANAP_EnhancedRelocationInformationResponse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RANAP_EnhancedRelocationInformationResponse, rANAP_EnhancedRelocationInformationResponse_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_rANAP_EnhancedRelocationInformationResponse_ies_2,
+		memb_rANAP_EnhancedRelocationInformationResponse_ies_constraint_1,
+		&asn_PER_memb_rANAP_EnhancedRelocationInformationResponse_ies_constr_2,
+		0,
+		"rANAP-EnhancedRelocationInformationResponse-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RANAP_EnhancedRelocationInformationResponse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RANAP_EnhancedRelocationInformationResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rANAP-EnhancedRelocationInformationResponse-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RANAP_EnhancedRelocationInformationResponse_specs_1 = {
+	sizeof(struct RANAP_RANAP_EnhancedRelocationInformationResponse),
+	offsetof(struct RANAP_RANAP_EnhancedRelocationInformationResponse, _asn_ctx),
+	asn_MAP_RANAP_RANAP_EnhancedRelocationInformationResponse_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RANAP_EnhancedRelocationInformationResponse = {
+	"RANAP_RANAP-EnhancedRelocationInformationResponse",
+	"RANAP_RANAP-EnhancedRelocationInformationResponse",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RANAP_EnhancedRelocationInformationResponse_tags_1,
+	sizeof(asn_DEF_RANAP_RANAP_EnhancedRelocationInformationResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_RANAP_EnhancedRelocationInformationResponse_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RANAP_EnhancedRelocationInformationResponse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RANAP_EnhancedRelocationInformationResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_RANAP_EnhancedRelocationInformationResponse_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RANAP_EnhancedRelocationInformationResponse_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RANAP_EnhancedRelocationInformationResponse_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RANAP-EnhancedRelocationInformationResponse.h b/src/ranap/RANAP_RANAP-EnhancedRelocationInformationResponse.h
new file mode 100644
index 0000000..f1ee9e8
--- /dev/null
+++ b/src/ranap/RANAP_RANAP-EnhancedRelocationInformationResponse.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RANAP_EnhancedRelocationInformationResponse_H_
+#define	_RANAP_RANAP_EnhancedRelocationInformationResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RANAP-EnhancedRelocationInformationResponse */
+typedef struct RANAP_RANAP_EnhancedRelocationInformationResponse {
+	struct rANAP_EnhancedRelocationInformationResponse_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} rANAP_EnhancedRelocationInformationResponse_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RANAP_EnhancedRelocationInformationResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RANAP_EnhancedRelocationInformationResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RANAP_EnhancedRelocationInformationResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RANAP-PDU.c b/src/ranap/RANAP_RANAP-PDU.c
new file mode 100644
index 0000000..06ab033
--- /dev/null
+++ b/src/ranap/RANAP_RANAP-PDU.c
@@ -0,0 +1,92 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RANAP-PDU.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_RANAP_PDU_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  3l }	/* (0..3,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_RANAP_PDU_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RANAP_PDU, choice.initiatingMessage),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_InitiatingMessage,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"initiatingMessage"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RANAP_PDU, choice.successfulOutcome),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_SuccessfulOutcome,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"successfulOutcome"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RANAP_PDU, choice.unsuccessfulOutcome),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_UnsuccessfulOutcome,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"unsuccessfulOutcome"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RANAP_PDU, choice.outcome),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Outcome,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"outcome"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RANAP_PDU_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initiatingMessage */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* successfulOutcome */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* unsuccessfulOutcome */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* outcome */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_RANAP_PDU_specs_1 = {
+	sizeof(struct RANAP_RANAP_PDU),
+	offsetof(struct RANAP_RANAP_PDU, _asn_ctx),
+	offsetof(struct RANAP_RANAP_PDU, present),
+	sizeof(((struct RANAP_RANAP_PDU *)0)->present),
+	asn_MAP_RANAP_RANAP_PDU_tag2el_1,
+	4,	/* Count of tags in the map */
+	0,
+	4	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RANAP_PDU = {
+	"RANAP_RANAP-PDU",
+	"RANAP_RANAP-PDU",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_RANAP_PDU_constr_1,
+	asn_MBR_RANAP_RANAP_PDU_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_RANAP_PDU_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RANAP-PDU.h b/src/ranap/RANAP_RANAP-PDU.h
new file mode 100644
index 0000000..6f93183
--- /dev/null
+++ b/src/ranap/RANAP_RANAP-PDU.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RANAP_PDU_H_
+#define	_RANAP_RANAP_PDU_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_InitiatingMessage.h"
+#include "RANAP_SuccessfulOutcome.h"
+#include "RANAP_UnsuccessfulOutcome.h"
+#include "RANAP_Outcome.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_RANAP_PDU_PR {
+	RANAP_RANAP_PDU_PR_NOTHING,	/* No components present */
+	RANAP_RANAP_PDU_PR_initiatingMessage,
+	RANAP_RANAP_PDU_PR_successfulOutcome,
+	RANAP_RANAP_PDU_PR_unsuccessfulOutcome,
+	RANAP_RANAP_PDU_PR_outcome,
+	/* Extensions may appear below */
+	
+} RANAP_RANAP_PDU_PR;
+
+/* RANAP_RANAP-PDU */
+typedef struct RANAP_RANAP_PDU {
+	RANAP_RANAP_PDU_PR present;
+	union RANAP_RANAP_PDU_u {
+		RANAP_InitiatingMessage_t	 initiatingMessage;
+		RANAP_SuccessfulOutcome_t	 successfulOutcome;
+		RANAP_UnsuccessfulOutcome_t	 unsuccessfulOutcome;
+		RANAP_Outcome_t	 outcome;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RANAP_PDU_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RANAP_PDU;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RANAP_PDU_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RANAP-RelocationInformation.c b/src/ranap/RANAP_RANAP-RelocationInformation.c
new file mode 100644
index 0000000..fd7ec95
--- /dev/null
+++ b/src/ranap/RANAP_RANAP-RelocationInformation.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RANAP-RelocationInformation.h"
+
+static int
+memb_rANAP_RelocationInformation_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_rANAP_RelocationInformation_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_rANAP_RelocationInformation_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_rANAP_RelocationInformation_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_rANAP_RelocationInformation_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_rANAP_RelocationInformation_ies_specs_2 = {
+	sizeof(struct rANAP_RelocationInformation_ies),
+	offsetof(struct rANAP_RelocationInformation_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_rANAP_RelocationInformation_ies_2 = {
+	"rANAP-RelocationInformation-ies",
+	"rANAP-RelocationInformation-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_rANAP_RelocationInformation_ies_tags_2,
+	sizeof(asn_DEF_rANAP_RelocationInformation_ies_tags_2)
+		/sizeof(asn_DEF_rANAP_RelocationInformation_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_rANAP_RelocationInformation_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_rANAP_RelocationInformation_ies_tags_2)
+		/sizeof(asn_DEF_rANAP_RelocationInformation_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_rANAP_RelocationInformation_ies_constr_2,
+	asn_MBR_rANAP_RelocationInformation_ies_2,
+	1,	/* Single element */
+	&asn_SPC_rANAP_RelocationInformation_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RANAP_RelocationInformation_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RANAP_RelocationInformation, rANAP_RelocationInformation_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_rANAP_RelocationInformation_ies_2,
+		memb_rANAP_RelocationInformation_ies_constraint_1,
+		&asn_PER_memb_rANAP_RelocationInformation_ies_constr_2,
+		0,
+		"rANAP-RelocationInformation-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RANAP_RelocationInformation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RANAP_RelocationInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rANAP-RelocationInformation-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RANAP_RelocationInformation_specs_1 = {
+	sizeof(struct RANAP_RANAP_RelocationInformation),
+	offsetof(struct RANAP_RANAP_RelocationInformation, _asn_ctx),
+	asn_MAP_RANAP_RANAP_RelocationInformation_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RANAP_RelocationInformation = {
+	"RANAP_RANAP-RelocationInformation",
+	"RANAP_RANAP-RelocationInformation",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RANAP_RelocationInformation_tags_1,
+	sizeof(asn_DEF_RANAP_RANAP_RelocationInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_RANAP_RelocationInformation_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RANAP_RelocationInformation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RANAP_RelocationInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_RANAP_RelocationInformation_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RANAP_RelocationInformation_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RANAP_RelocationInformation_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RANAP-RelocationInformation.h b/src/ranap/RANAP_RANAP-RelocationInformation.h
new file mode 100644
index 0000000..199d85c
--- /dev/null
+++ b/src/ranap/RANAP_RANAP-RelocationInformation.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RANAP_RelocationInformation_H_
+#define	_RANAP_RANAP_RelocationInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RANAP-RelocationInformation */
+typedef struct RANAP_RANAP_RelocationInformation {
+	struct rANAP_RelocationInformation_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} rANAP_RelocationInformation_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RANAP_RelocationInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RANAP_RelocationInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RANAP_RelocationInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAT-Type.c b/src/ranap/RANAP_RAT-Type.c
new file mode 100644
index 0000000..11b7336
--- /dev/null
+++ b/src/ranap/RANAP_RAT-Type.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAT-Type.h"
+
+int
+RANAP_RAT_Type_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RAT_Type_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_RAT_Type_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RAT_Type_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RAT_Type_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RAT_Type_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RAT_Type_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RAT_Type_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RAT_Type_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RAT_Type_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RAT_Type_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RAT_Type_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RAT_Type_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RAT_Type_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RAT_Type_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RAT_Type_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RAT_Type_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RAT_Type_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RAT_Type_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RAT_Type_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RAT_Type_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RAT_Type_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RAT_Type_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_RAT_Type_value2enum_1[] = {
+	{ 0,	5,	"utran" },
+	{ 1,	5,	"geran" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_RAT_Type_enum2value_1[] = {
+	1,	/* geran(1) */
+	0	/* utran(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_RAT_Type_specs_1 = {
+	asn_MAP_RANAP_RAT_Type_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_RAT_Type_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAT_Type_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAT_Type = {
+	"RANAP_RAT-Type",
+	"RANAP_RAT-Type",
+	RANAP_RAT_Type_free,
+	RANAP_RAT_Type_print,
+	RANAP_RAT_Type_constraint,
+	RANAP_RAT_Type_decode_ber,
+	RANAP_RAT_Type_encode_der,
+	RANAP_RAT_Type_decode_xer,
+	RANAP_RAT_Type_encode_xer,
+	RANAP_RAT_Type_decode_uper,
+	RANAP_RAT_Type_encode_uper,
+	RANAP_RAT_Type_decode_aper,
+	RANAP_RAT_Type_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAT_Type_tags_1,
+	sizeof(asn_DEF_RANAP_RAT_Type_tags_1)
+		/sizeof(asn_DEF_RANAP_RAT_Type_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAT_Type_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAT_Type_tags_1)
+		/sizeof(asn_DEF_RANAP_RAT_Type_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RAT_Type_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_RAT_Type_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAT-Type.h b/src/ranap/RANAP_RAT-Type.h
new file mode 100644
index 0000000..55c5467
--- /dev/null
+++ b/src/ranap/RANAP_RAT-Type.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAT_Type_H_
+#define	_RANAP_RAT_Type_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_RAT_Type {
+	RANAP_RAT_Type_utran	= 0,
+	RANAP_RAT_Type_geran	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_RAT_Type;
+
+/* RANAP_RAT-Type */
+typedef long	 RANAP_RAT_Type_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAT_Type;
+asn_struct_free_f RANAP_RAT_Type_free;
+asn_struct_print_f RANAP_RAT_Type_print;
+asn_constr_check_f RANAP_RAT_Type_constraint;
+ber_type_decoder_f RANAP_RAT_Type_decode_ber;
+der_type_encoder_f RANAP_RAT_Type_encode_der;
+xer_type_decoder_f RANAP_RAT_Type_decode_xer;
+xer_type_encoder_f RANAP_RAT_Type_encode_xer;
+per_type_decoder_f RANAP_RAT_Type_decode_uper;
+per_type_encoder_f RANAP_RAT_Type_encode_uper;
+per_type_decoder_f RANAP_RAT_Type_decode_aper;
+per_type_encoder_f RANAP_RAT_Type_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAT_Type_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RAofIdleModeUEs.c b/src/ranap/RANAP_RAofIdleModeUEs.c
new file mode 100644
index 0000000..2314d74
--- /dev/null
+++ b/src/ranap/RANAP_RAofIdleModeUEs.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RAofIdleModeUEs.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_RAofIdleModeUEs_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16, -1,  1l,  65536l }	/* (SIZE(1..65536)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_RAofIdleModeUEs_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_RAC,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RAofIdleModeUEs_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_RAofIdleModeUEs_specs_1 = {
+	sizeof(struct RANAP_RAofIdleModeUEs),
+	offsetof(struct RANAP_RAofIdleModeUEs, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RAofIdleModeUEs = {
+	"RANAP_RAofIdleModeUEs",
+	"RANAP_RAofIdleModeUEs",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RAofIdleModeUEs_tags_1,
+	sizeof(asn_DEF_RANAP_RAofIdleModeUEs_tags_1)
+		/sizeof(asn_DEF_RANAP_RAofIdleModeUEs_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RAofIdleModeUEs_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RAofIdleModeUEs_tags_1)
+		/sizeof(asn_DEF_RANAP_RAofIdleModeUEs_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RAofIdleModeUEs_constr_1,
+	asn_MBR_RANAP_RAofIdleModeUEs_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_RAofIdleModeUEs_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RAofIdleModeUEs.h b/src/ranap/RANAP_RAofIdleModeUEs.h
new file mode 100644
index 0000000..2913678
--- /dev/null
+++ b/src/ranap/RANAP_RAofIdleModeUEs.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RAofIdleModeUEs_H_
+#define	_RANAP_RAofIdleModeUEs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_RAC.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RAofIdleModeUEs */
+typedef struct RANAP_RAofIdleModeUEs {
+	A_SEQUENCE_OF(RANAP_RAC_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RAofIdleModeUEs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAofIdleModeUEs;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RAofIdleModeUEs_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RIM-Transfer.c b/src/ranap/RANAP_RIM-Transfer.c
new file mode 100644
index 0000000..3bd8e51
--- /dev/null
+++ b/src/ranap/RANAP_RIM-Transfer.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RIM-Transfer.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_RIM_Transfer_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RIM_Transfer, rIMInformation),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RIMInformation,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rIMInformation"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_RIM_Transfer, rIMRoutingAddress),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANAP_RIMRoutingAddress,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rIMRoutingAddress"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_RIM_Transfer, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_RIM_Transfer_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_RIM_Transfer_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RIM_Transfer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rIMInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rIMRoutingAddress */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RIM_Transfer_specs_1 = {
+	sizeof(struct RANAP_RIM_Transfer),
+	offsetof(struct RANAP_RIM_Transfer, _asn_ctx),
+	asn_MAP_RANAP_RIM_Transfer_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_RIM_Transfer_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RIM_Transfer = {
+	"RANAP_RIM-Transfer",
+	"RANAP_RIM-Transfer",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RIM_Transfer_tags_1,
+	sizeof(asn_DEF_RANAP_RIM_Transfer_tags_1)
+		/sizeof(asn_DEF_RANAP_RIM_Transfer_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RIM_Transfer_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RIM_Transfer_tags_1)
+		/sizeof(asn_DEF_RANAP_RIM_Transfer_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RIM_Transfer_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_RIM_Transfer_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RIM-Transfer.h b/src/ranap/RANAP_RIM-Transfer.h
new file mode 100644
index 0000000..7187ad6
--- /dev/null
+++ b/src/ranap/RANAP_RIM-Transfer.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RIM_Transfer_H_
+#define	_RANAP_RIM_Transfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_RIMInformation.h"
+#include "RANAP_RIMRoutingAddress.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RIM-Transfer */
+typedef struct RANAP_RIM_Transfer {
+	RANAP_RIMInformation_t	 rIMInformation;
+	RANAP_RIMRoutingAddress_t	*rIMRoutingAddress	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RIM_Transfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RIM_Transfer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RIM_Transfer_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RIMInformation.c b/src/ranap/RANAP_RIMInformation.c
new file mode 100644
index 0000000..fa073b6
--- /dev/null
+++ b/src/ranap/RANAP_RIMInformation.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RIMInformation.h"
+
+int
+RANAP_RIMInformation_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RIMInformation_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_RIMInformation_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RIMInformation_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RIMInformation_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RIMInformation_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RIMInformation_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RIMInformation_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RIMInformation_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RIMInformation_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RIMInformation_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RIMInformation_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RIMInformation_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RIMInformation_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RIMInformation_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RIMInformation_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RIMInformation_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RIMInformation_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RIMInformation_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RIMInformation_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RIMInformation_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RIMInformation_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_RIMInformation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RIMInformation = {
+	"RANAP_RIMInformation",
+	"RANAP_RIMInformation",
+	RANAP_RIMInformation_free,
+	RANAP_RIMInformation_print,
+	RANAP_RIMInformation_constraint,
+	RANAP_RIMInformation_decode_ber,
+	RANAP_RIMInformation_encode_der,
+	RANAP_RIMInformation_decode_xer,
+	RANAP_RIMInformation_encode_xer,
+	RANAP_RIMInformation_decode_uper,
+	RANAP_RIMInformation_encode_uper,
+	RANAP_RIMInformation_decode_aper,
+	RANAP_RIMInformation_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RIMInformation_tags_1,
+	sizeof(asn_DEF_RANAP_RIMInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_RIMInformation_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RIMInformation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RIMInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_RIMInformation_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_RIMInformation.h b/src/ranap/RANAP_RIMInformation.h
new file mode 100644
index 0000000..47b60e9
--- /dev/null
+++ b/src/ranap/RANAP_RIMInformation.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RIMInformation_H_
+#define	_RANAP_RIMInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RIMInformation */
+typedef OCTET_STRING_t	 RANAP_RIMInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RIMInformation;
+asn_struct_free_f RANAP_RIMInformation_free;
+asn_struct_print_f RANAP_RIMInformation_print;
+asn_constr_check_f RANAP_RIMInformation_constraint;
+ber_type_decoder_f RANAP_RIMInformation_decode_ber;
+der_type_encoder_f RANAP_RIMInformation_encode_der;
+xer_type_decoder_f RANAP_RIMInformation_decode_xer;
+xer_type_encoder_f RANAP_RIMInformation_encode_xer;
+per_type_decoder_f RANAP_RIMInformation_decode_uper;
+per_type_encoder_f RANAP_RIMInformation_encode_uper;
+per_type_decoder_f RANAP_RIMInformation_decode_aper;
+per_type_encoder_f RANAP_RIMInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RIMInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RIMRoutingAddress.c b/src/ranap/RANAP_RIMRoutingAddress.c
new file mode 100644
index 0000000..7ff3b5e
--- /dev/null
+++ b/src/ranap/RANAP_RIMRoutingAddress.c
@@ -0,0 +1,82 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RIMRoutingAddress.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_RIMRoutingAddress_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_RIMRoutingAddress_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RIMRoutingAddress, choice.targetRNC_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TargetRNC_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"targetRNC-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RIMRoutingAddress, choice.gERAN_Cell_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GERAN_Cell_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"gERAN-Cell-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RIMRoutingAddress, choice.targeteNB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TargetENB_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"targeteNB-ID"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RIMRoutingAddress_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* targetRNC-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gERAN-Cell-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* targeteNB-ID */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_RIMRoutingAddress_specs_1 = {
+	sizeof(struct RANAP_RIMRoutingAddress),
+	offsetof(struct RANAP_RIMRoutingAddress, _asn_ctx),
+	offsetof(struct RANAP_RIMRoutingAddress, present),
+	sizeof(((struct RANAP_RIMRoutingAddress *)0)->present),
+	asn_MAP_RANAP_RIMRoutingAddress_tag2el_1,
+	3,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RIMRoutingAddress = {
+	"RANAP_RIMRoutingAddress",
+	"RANAP_RIMRoutingAddress",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_RIMRoutingAddress_constr_1,
+	asn_MBR_RANAP_RIMRoutingAddress_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_RIMRoutingAddress_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RIMRoutingAddress.h b/src/ranap/RANAP_RIMRoutingAddress.h
new file mode 100644
index 0000000..3086b27
--- /dev/null
+++ b/src/ranap/RANAP_RIMRoutingAddress.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RIMRoutingAddress_H_
+#define	_RANAP_RIMRoutingAddress_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_TargetRNC-ID.h"
+#include "RANAP_GERAN-Cell-ID.h"
+#include "RANAP_TargetENB-ID.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_RIMRoutingAddress_PR {
+	RANAP_RIMRoutingAddress_PR_NOTHING,	/* No components present */
+	RANAP_RIMRoutingAddress_PR_targetRNC_ID,
+	RANAP_RIMRoutingAddress_PR_gERAN_Cell_ID,
+	/* Extensions may appear below */
+	RANAP_RIMRoutingAddress_PR_targeteNB_ID
+} RANAP_RIMRoutingAddress_PR;
+
+/* RANAP_RIMRoutingAddress */
+typedef struct RANAP_RIMRoutingAddress {
+	RANAP_RIMRoutingAddress_PR present;
+	union RANAP_RIMRoutingAddress_u {
+		RANAP_TargetRNC_ID_t	 targetRNC_ID;
+		RANAP_GERAN_Cell_ID_t	 gERAN_Cell_ID;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+		RANAP_TargetENB_ID_t	 targeteNB_ID;
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RIMRoutingAddress_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RIMRoutingAddress;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RIMRoutingAddress_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RNC-ID.c b/src/ranap/RANAP_RNC-ID.c
new file mode 100644
index 0000000..c6a12a3
--- /dev/null
+++ b/src/ranap/RANAP_RNC-ID.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RNC-ID.h"
+
+int
+RANAP_RNC_ID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 4095l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RNC_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_RNC_ID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RNC_ID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RNC_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RNC_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RNC_ID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RNC_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RNC_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RNC_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RNC_ID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RNC_ID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RNC_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RNC_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RNC_ID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 12,  12,  0l,  4095l }	/* (0..4095) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RNC_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RNC_ID = {
+	"RANAP_RNC-ID",
+	"RANAP_RNC-ID",
+	RANAP_RNC_ID_free,
+	RANAP_RNC_ID_print,
+	RANAP_RNC_ID_constraint,
+	RANAP_RNC_ID_decode_ber,
+	RANAP_RNC_ID_encode_der,
+	RANAP_RNC_ID_decode_xer,
+	RANAP_RNC_ID_encode_xer,
+	RANAP_RNC_ID_decode_uper,
+	RANAP_RNC_ID_encode_uper,
+	RANAP_RNC_ID_decode_aper,
+	RANAP_RNC_ID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RNC_ID_tags_1,
+	sizeof(asn_DEF_RANAP_RNC_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_RNC_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RNC_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RNC_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_RNC_ID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RNC_ID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_RNC-ID.h b/src/ranap/RANAP_RNC-ID.h
new file mode 100644
index 0000000..713b3f1
--- /dev/null
+++ b/src/ranap/RANAP_RNC-ID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RNC_ID_H_
+#define	_RANAP_RNC_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RNC-ID */
+typedef long	 RANAP_RNC_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RNC_ID;
+asn_struct_free_f RANAP_RNC_ID_free;
+asn_struct_print_f RANAP_RNC_ID_print;
+asn_constr_check_f RANAP_RNC_ID_constraint;
+ber_type_decoder_f RANAP_RNC_ID_decode_ber;
+der_type_encoder_f RANAP_RNC_ID_encode_der;
+xer_type_decoder_f RANAP_RNC_ID_decode_xer;
+xer_type_encoder_f RANAP_RNC_ID_encode_xer;
+per_type_decoder_f RANAP_RNC_ID_decode_uper;
+per_type_encoder_f RANAP_RNC_ID_encode_uper;
+per_type_decoder_f RANAP_RNC_ID_decode_aper;
+per_type_encoder_f RANAP_RNC_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RNC_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RNCTraceInformation.c b/src/ranap/RANAP_RNCTraceInformation.c
new file mode 100644
index 0000000..f72c4bd
--- /dev/null
+++ b/src/ranap/RANAP_RNCTraceInformation.c
@@ -0,0 +1,252 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RNCTraceInformation.h"
+
+static int
+traceActivationIndicato_3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+traceActivationIndicato_3_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+static void
+traceActivationIndicato_3_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	traceActivationIndicato_3_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+static int
+traceActivationIndicato_3_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	traceActivationIndicato_3_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+static asn_dec_rval_t
+traceActivationIndicato_3_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	traceActivationIndicato_3_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+static asn_enc_rval_t
+traceActivationIndicato_3_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	traceActivationIndicato_3_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+static asn_dec_rval_t
+traceActivationIndicato_3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	traceActivationIndicato_3_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+static asn_enc_rval_t
+traceActivationIndicato_3_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	traceActivationIndicato_3_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+static asn_dec_rval_t
+traceActivationIndicato_3_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	traceActivationIndicato_3_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_enc_rval_t
+traceActivationIndicato_3_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	traceActivationIndicato_3_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_enc_rval_t
+traceActivationIndicato_3_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	traceActivationIndicato_3_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_dec_rval_t
+traceActivationIndicato_3_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	traceActivationIndicato_3_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_traceActivationIndicato_constr_3 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 1,  1,  0l,  1l }	/* (0..1) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_traceActivationIndicato_value2enum_3[] = {
+	{ 0,	9,	"activated" },
+	{ 1,	11,	"deactivated" }
+};
+static const unsigned int asn_MAP_traceActivationIndicato_enum2value_3[] = {
+	0,	/* activated(0) */
+	1	/* deactivated(1) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_traceActivationIndicato_specs_3 = {
+	asn_MAP_traceActivationIndicato_value2enum_3,	/* "tag" => N; sorted by tag */
+	asn_MAP_traceActivationIndicato_enum2value_3,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_traceActivationIndicato_tags_3[] = {
+	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_traceActivationIndicato_3 = {
+	"traceActivationIndicato",
+	"traceActivationIndicato",
+	traceActivationIndicato_3_free,
+	traceActivationIndicato_3_print,
+	traceActivationIndicato_3_constraint,
+	traceActivationIndicato_3_decode_ber,
+	traceActivationIndicato_3_encode_der,
+	traceActivationIndicato_3_decode_xer,
+	traceActivationIndicato_3_encode_xer,
+	traceActivationIndicato_3_decode_uper,
+	traceActivationIndicato_3_encode_uper,
+	traceActivationIndicato_3_decode_aper,
+	traceActivationIndicato_3_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_traceActivationIndicato_tags_3,
+	sizeof(asn_DEF_traceActivationIndicato_tags_3)
+		/sizeof(asn_DEF_traceActivationIndicato_tags_3[0]) - 1, /* 1 */
+	asn_DEF_traceActivationIndicato_tags_3,	/* Same as above */
+	sizeof(asn_DEF_traceActivationIndicato_tags_3)
+		/sizeof(asn_DEF_traceActivationIndicato_tags_3[0]), /* 2 */
+	&asn_PER_type_traceActivationIndicato_constr_3,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_traceActivationIndicato_specs_3	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RNCTraceInformation_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RNCTraceInformation, traceReference),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TraceReference,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"traceReference"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RNCTraceInformation, traceActivationIndicato),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_traceActivationIndicato_3,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"traceActivationIndicato"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_RNCTraceInformation, equipmentsToBeTraced),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANAP_EquipmentsToBeTraced,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"equipmentsToBeTraced"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_RNCTraceInformation, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_RNCTraceInformation_oms_1[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_RANAP_RNCTraceInformation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RNCTraceInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* traceReference */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* traceActivationIndicato */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* equipmentsToBeTraced */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RNCTraceInformation_specs_1 = {
+	sizeof(struct RANAP_RNCTraceInformation),
+	offsetof(struct RANAP_RNCTraceInformation, _asn_ctx),
+	asn_MAP_RANAP_RNCTraceInformation_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_RNCTraceInformation_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RNCTraceInformation = {
+	"RANAP_RNCTraceInformation",
+	"RANAP_RNCTraceInformation",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RNCTraceInformation_tags_1,
+	sizeof(asn_DEF_RANAP_RNCTraceInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_RNCTraceInformation_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RNCTraceInformation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RNCTraceInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_RNCTraceInformation_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RNCTraceInformation_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_RNCTraceInformation_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RNCTraceInformation.h b/src/ranap/RANAP_RNCTraceInformation.h
new file mode 100644
index 0000000..9674115
--- /dev/null
+++ b/src/ranap/RANAP_RNCTraceInformation.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RNCTraceInformation_H_
+#define	_RANAP_RNCTraceInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_TraceReference.h"
+#include <NativeEnumerated.h>
+#include "RANAP_EquipmentsToBeTraced.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum traceActivationIndicato {
+	traceActivationIndicato_activated	= 0,
+	traceActivationIndicato_deactivated	= 1
+} e_traceActivationIndicato;
+
+/* RANAP_RNCTraceInformation */
+typedef struct RANAP_RNCTraceInformation {
+	RANAP_TraceReference_t	 traceReference;
+	long	 traceActivationIndicato;
+	RANAP_EquipmentsToBeTraced_t	*equipmentsToBeTraced	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RNCTraceInformation_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_traceActivationIndicato_3;	// (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RNCTraceInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RNCTraceInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RNSAPRelocationParameters.c b/src/ranap/RANAP_RNSAPRelocationParameters.c
new file mode 100644
index 0000000..d279a01
--- /dev/null
+++ b/src/ranap/RANAP_RNSAPRelocationParameters.c
@@ -0,0 +1,103 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RNSAPRelocationParameters.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_RNSAPRelocationParameters_1[] = {
+	{ ATF_POINTER, 5, offsetof(struct RANAP_RNSAPRelocationParameters, rabParmetersList),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RABParametersList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rabParmetersList"
+		},
+	{ ATF_POINTER, 4, offsetof(struct RANAP_RNSAPRelocationParameters, locationReporting),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_LocationReportingTransferInformation,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"locationReporting"
+		},
+	{ ATF_POINTER, 3, offsetof(struct RANAP_RNSAPRelocationParameters, traceInformation),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TraceInformation,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"traceInformation"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_RNSAPRelocationParameters, sourceSAI),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_SAI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"sourceSAI"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_RNSAPRelocationParameters, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_RNSAPRelocationParameters_oms_1[] = { 0, 1, 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_RANAP_RNSAPRelocationParameters_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RNSAPRelocationParameters_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rabParmetersList */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* locationReporting */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* traceInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sourceSAI */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RNSAPRelocationParameters_specs_1 = {
+	sizeof(struct RANAP_RNSAPRelocationParameters),
+	offsetof(struct RANAP_RNSAPRelocationParameters, _asn_ctx),
+	asn_MAP_RANAP_RNSAPRelocationParameters_tag2el_1,
+	5,	/* Count of tags in the map */
+	asn_MAP_RANAP_RNSAPRelocationParameters_oms_1,	/* Optional members */
+	5, 0,	/* Root/Additions */
+	4,	/* Start extensions */
+	6	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RNSAPRelocationParameters = {
+	"RANAP_RNSAPRelocationParameters",
+	"RANAP_RNSAPRelocationParameters",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RNSAPRelocationParameters_tags_1,
+	sizeof(asn_DEF_RANAP_RNSAPRelocationParameters_tags_1)
+		/sizeof(asn_DEF_RANAP_RNSAPRelocationParameters_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RNSAPRelocationParameters_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RNSAPRelocationParameters_tags_1)
+		/sizeof(asn_DEF_RANAP_RNSAPRelocationParameters_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RNSAPRelocationParameters_1,
+	5,	/* Elements count */
+	&asn_SPC_RANAP_RNSAPRelocationParameters_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RNSAPRelocationParameters.h b/src/ranap/RANAP_RNSAPRelocationParameters.h
new file mode 100644
index 0000000..42c73da
--- /dev/null
+++ b/src/ranap/RANAP_RNSAPRelocationParameters.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RNSAPRelocationParameters_H_
+#define	_RANAP_RNSAPRelocationParameters_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_RABParametersList.h"
+#include "RANAP_LocationReportingTransferInformation.h"
+#include "RANAP_TraceInformation.h"
+#include "RANAP_SAI.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RNSAPRelocationParameters */
+typedef struct RANAP_RNSAPRelocationParameters {
+	RANAP_RABParametersList_t	*rabParmetersList	/* OPTIONAL */;
+	RANAP_LocationReportingTransferInformation_t	*locationReporting	/* OPTIONAL */;
+	RANAP_TraceInformation_t	*traceInformation	/* OPTIONAL */;
+	RANAP_SAI_t	*sourceSAI	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RNSAPRelocationParameters_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RNSAPRelocationParameters;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RNSAPRelocationParameters_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RRC-Container.c b/src/ranap/RANAP_RRC-Container.c
new file mode 100644
index 0000000..b021d81
--- /dev/null
+++ b/src/ranap/RANAP_RRC-Container.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RRC-Container.h"
+
+int
+RANAP_RRC_Container_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RRC_Container_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_RRC_Container_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RRC_Container_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RRC_Container_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RRC_Container_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RRC_Container_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RRC_Container_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RRC_Container_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RRC_Container_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RRC_Container_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RRC_Container_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RRC_Container_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RRC_Container_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RRC_Container_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RRC_Container_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RRC_Container_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RRC_Container_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RRC_Container_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RRC_Container_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RRC_Container_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RRC_Container_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_RRC_Container_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RRC_Container = {
+	"RANAP_RRC-Container",
+	"RANAP_RRC-Container",
+	RANAP_RRC_Container_free,
+	RANAP_RRC_Container_print,
+	RANAP_RRC_Container_constraint,
+	RANAP_RRC_Container_decode_ber,
+	RANAP_RRC_Container_encode_der,
+	RANAP_RRC_Container_decode_xer,
+	RANAP_RRC_Container_encode_xer,
+	RANAP_RRC_Container_decode_uper,
+	RANAP_RRC_Container_encode_uper,
+	RANAP_RRC_Container_decode_aper,
+	RANAP_RRC_Container_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RRC_Container_tags_1,
+	sizeof(asn_DEF_RANAP_RRC_Container_tags_1)
+		/sizeof(asn_DEF_RANAP_RRC_Container_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RRC_Container_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RRC_Container_tags_1)
+		/sizeof(asn_DEF_RANAP_RRC_Container_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_RRC-Container.h b/src/ranap/RANAP_RRC-Container.h
new file mode 100644
index 0000000..5cda4b7
--- /dev/null
+++ b/src/ranap/RANAP_RRC-Container.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RRC_Container_H_
+#define	_RANAP_RRC_Container_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RRC-Container */
+typedef OCTET_STRING_t	 RANAP_RRC_Container_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RRC_Container;
+asn_struct_free_f RANAP_RRC_Container_free;
+asn_struct_print_f RANAP_RRC_Container_print;
+asn_constr_check_f RANAP_RRC_Container_constraint;
+ber_type_decoder_f RANAP_RRC_Container_decode_ber;
+der_type_encoder_f RANAP_RRC_Container_encode_der;
+xer_type_decoder_f RANAP_RRC_Container_decode_xer;
+xer_type_encoder_f RANAP_RRC_Container_encode_xer;
+per_type_decoder_f RANAP_RRC_Container_decode_uper;
+per_type_encoder_f RANAP_RRC_Container_encode_uper;
+per_type_decoder_f RANAP_RRC_Container_decode_aper;
+per_type_encoder_f RANAP_RRC_Container_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RRC_Container_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RSRQ-Extension.c b/src/ranap/RANAP_RSRQ-Extension.c
new file mode 100644
index 0000000..ef1c633
--- /dev/null
+++ b/src/ranap/RANAP_RSRQ-Extension.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RSRQ-Extension.h"
+
+int
+RANAP_RSRQ_Extension_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= -30ull && value <= 46l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RSRQ_Extension_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_RSRQ_Extension_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RSRQ_Extension_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RSRQ_Extension_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RSRQ_Extension_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RSRQ_Extension_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RSRQ_Extension_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RSRQ_Extension_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RSRQ_Extension_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RSRQ_Extension_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RSRQ_Extension_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RSRQ_Extension_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RSRQ_Extension_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RSRQ_Extension_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RSRQ_Extension_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RSRQ_Extension_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RSRQ_Extension_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RSRQ_Extension_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RSRQ_Extension_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RSRQ_Extension_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RSRQ_Extension_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RSRQ_Extension_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  7,  7, -30ull,  46l }	/* (-30..46,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RSRQ_Extension_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RSRQ_Extension = {
+	"RANAP_RSRQ-Extension",
+	"RANAP_RSRQ-Extension",
+	RANAP_RSRQ_Extension_free,
+	RANAP_RSRQ_Extension_print,
+	RANAP_RSRQ_Extension_constraint,
+	RANAP_RSRQ_Extension_decode_ber,
+	RANAP_RSRQ_Extension_encode_der,
+	RANAP_RSRQ_Extension_decode_xer,
+	RANAP_RSRQ_Extension_encode_xer,
+	RANAP_RSRQ_Extension_decode_uper,
+	RANAP_RSRQ_Extension_encode_uper,
+	RANAP_RSRQ_Extension_decode_aper,
+	RANAP_RSRQ_Extension_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RSRQ_Extension_tags_1,
+	sizeof(asn_DEF_RANAP_RSRQ_Extension_tags_1)
+		/sizeof(asn_DEF_RANAP_RSRQ_Extension_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RSRQ_Extension_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RSRQ_Extension_tags_1)
+		/sizeof(asn_DEF_RANAP_RSRQ_Extension_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RSRQ_Extension_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_RSRQ-Extension.h b/src/ranap/RANAP_RSRQ-Extension.h
new file mode 100644
index 0000000..6fd0231
--- /dev/null
+++ b/src/ranap/RANAP_RSRQ-Extension.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RSRQ_Extension_H_
+#define	_RANAP_RSRQ_Extension_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RSRQ-Extension */
+typedef long	 RANAP_RSRQ_Extension_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RSRQ_Extension;
+asn_struct_free_f RANAP_RSRQ_Extension_free;
+asn_struct_print_f RANAP_RSRQ_Extension_print;
+asn_constr_check_f RANAP_RSRQ_Extension_constraint;
+ber_type_decoder_f RANAP_RSRQ_Extension_decode_ber;
+der_type_encoder_f RANAP_RSRQ_Extension_encode_der;
+xer_type_decoder_f RANAP_RSRQ_Extension_decode_xer;
+xer_type_encoder_f RANAP_RSRQ_Extension_encode_xer;
+per_type_decoder_f RANAP_RSRQ_Extension_decode_uper;
+per_type_encoder_f RANAP_RSRQ_Extension_encode_uper;
+per_type_decoder_f RANAP_RSRQ_Extension_decode_aper;
+per_type_encoder_f RANAP_RSRQ_Extension_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RSRQ_Extension_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RSRQ-Type.c b/src/ranap/RANAP_RSRQ-Type.c
new file mode 100644
index 0000000..067a2b6
--- /dev/null
+++ b/src/ranap/RANAP_RSRQ-Type.c
@@ -0,0 +1,71 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RSRQ-Type.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_RSRQ_Type_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RSRQ_Type, allSymbols),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BOOLEAN,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"allSymbols"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RSRQ_Type, wideBand),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BOOLEAN,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"wideBand"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RSRQ_Type_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RSRQ_Type_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* allSymbols */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* wideBand */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RSRQ_Type_specs_1 = {
+	sizeof(struct RANAP_RSRQ_Type),
+	offsetof(struct RANAP_RSRQ_Type, _asn_ctx),
+	asn_MAP_RANAP_RSRQ_Type_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RSRQ_Type = {
+	"RANAP_RSRQ-Type",
+	"RANAP_RSRQ-Type",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RSRQ_Type_tags_1,
+	sizeof(asn_DEF_RANAP_RSRQ_Type_tags_1)
+		/sizeof(asn_DEF_RANAP_RSRQ_Type_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RSRQ_Type_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RSRQ_Type_tags_1)
+		/sizeof(asn_DEF_RANAP_RSRQ_Type_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RSRQ_Type_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_RSRQ_Type_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RSRQ-Type.h b/src/ranap/RANAP_RSRQ-Type.h
new file mode 100644
index 0000000..5846b93
--- /dev/null
+++ b/src/ranap/RANAP_RSRQ-Type.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RSRQ_Type_H_
+#define	_RANAP_RSRQ_Type_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BOOLEAN.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RSRQ-Type */
+typedef struct RANAP_RSRQ_Type {
+	BOOLEAN_t	 allSymbols;
+	BOOLEAN_t	 wideBand;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RSRQ_Type_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RSRQ_Type;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RSRQ_Type_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RSRVCC-HO-Indication.c b/src/ranap/RANAP_RSRVCC-HO-Indication.c
new file mode 100644
index 0000000..23f2e0c
--- /dev/null
+++ b/src/ranap/RANAP_RSRVCC-HO-Indication.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RSRVCC-HO-Indication.h"
+
+int
+RANAP_RSRVCC_HO_Indication_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RSRVCC_HO_Indication_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_RSRVCC_HO_Indication_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RSRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RSRVCC_HO_Indication_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RSRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RSRVCC_HO_Indication_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RSRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RSRVCC_HO_Indication_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RSRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RSRVCC_HO_Indication_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RSRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RSRVCC_HO_Indication_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RSRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RSRVCC_HO_Indication_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RSRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RSRVCC_HO_Indication_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RSRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RSRVCC_HO_Indication_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RSRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RSRVCC_HO_Indication_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RSRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RSRVCC_HO_Indication_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_RSRVCC_HO_Indication_value2enum_1[] = {
+	{ 0,	7,	"ps-only" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_RSRVCC_HO_Indication_enum2value_1[] = {
+	0	/* ps-only(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_RSRVCC_HO_Indication_specs_1 = {
+	asn_MAP_RANAP_RSRVCC_HO_Indication_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_RSRVCC_HO_Indication_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RSRVCC_HO_Indication_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RSRVCC_HO_Indication = {
+	"RANAP_RSRVCC-HO-Indication",
+	"RANAP_RSRVCC-HO-Indication",
+	RANAP_RSRVCC_HO_Indication_free,
+	RANAP_RSRVCC_HO_Indication_print,
+	RANAP_RSRVCC_HO_Indication_constraint,
+	RANAP_RSRVCC_HO_Indication_decode_ber,
+	RANAP_RSRVCC_HO_Indication_encode_der,
+	RANAP_RSRVCC_HO_Indication_decode_xer,
+	RANAP_RSRVCC_HO_Indication_encode_xer,
+	RANAP_RSRVCC_HO_Indication_decode_uper,
+	RANAP_RSRVCC_HO_Indication_encode_uper,
+	RANAP_RSRVCC_HO_Indication_decode_aper,
+	RANAP_RSRVCC_HO_Indication_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RSRVCC_HO_Indication_tags_1,
+	sizeof(asn_DEF_RANAP_RSRVCC_HO_Indication_tags_1)
+		/sizeof(asn_DEF_RANAP_RSRVCC_HO_Indication_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RSRVCC_HO_Indication_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RSRVCC_HO_Indication_tags_1)
+		/sizeof(asn_DEF_RANAP_RSRVCC_HO_Indication_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RSRVCC_HO_Indication_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_RSRVCC_HO_Indication_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RSRVCC-HO-Indication.h b/src/ranap/RANAP_RSRVCC-HO-Indication.h
new file mode 100644
index 0000000..b775efa
--- /dev/null
+++ b/src/ranap/RANAP_RSRVCC-HO-Indication.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RSRVCC_HO_Indication_H_
+#define	_RANAP_RSRVCC_HO_Indication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_RSRVCC_HO_Indication {
+	RANAP_RSRVCC_HO_Indication_ps_only	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_RSRVCC_HO_Indication;
+
+/* RANAP_RSRVCC-HO-Indication */
+typedef long	 RANAP_RSRVCC_HO_Indication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RSRVCC_HO_Indication;
+asn_struct_free_f RANAP_RSRVCC_HO_Indication_free;
+asn_struct_print_f RANAP_RSRVCC_HO_Indication_print;
+asn_constr_check_f RANAP_RSRVCC_HO_Indication_constraint;
+ber_type_decoder_f RANAP_RSRVCC_HO_Indication_decode_ber;
+der_type_encoder_f RANAP_RSRVCC_HO_Indication_encode_der;
+xer_type_decoder_f RANAP_RSRVCC_HO_Indication_decode_xer;
+xer_type_encoder_f RANAP_RSRVCC_HO_Indication_encode_xer;
+per_type_decoder_f RANAP_RSRVCC_HO_Indication_decode_uper;
+per_type_encoder_f RANAP_RSRVCC_HO_Indication_encode_uper;
+per_type_decoder_f RANAP_RSRVCC_HO_Indication_decode_aper;
+per_type_encoder_f RANAP_RSRVCC_HO_Indication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RSRVCC_HO_Indication_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RSRVCC-Information.c b/src/ranap/RANAP_RSRVCC-Information.c
new file mode 100644
index 0000000..24a84ac
--- /dev/null
+++ b/src/ranap/RANAP_RSRVCC-Information.c
@@ -0,0 +1,150 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RSRVCC-Information.h"
+
+static int
+memb_nonce_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 128l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_iMSInformation_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 1l && size <= 32l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_nonce_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  128l,  128l }	/* (SIZE(128..128)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_iMSInformation_constr_3 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 5,  5,  1l,  32l }	/* (SIZE(1..32)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_RSRVCC_Information_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RSRVCC_Information, nonce),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		memb_nonce_constraint_1,
+		&asn_PER_memb_nonce_constr_2,
+		0,
+		"nonce"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RSRVCC_Information, iMSInformation),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_OCTET_STRING,
+		memb_iMSInformation_constraint_1,
+		&asn_PER_memb_iMSInformation_constr_3,
+		0,
+		"iMSInformation"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_RSRVCC_Information, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_RSRVCC_Information_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_RSRVCC_Information_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RSRVCC_Information_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nonce */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iMSInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RSRVCC_Information_specs_1 = {
+	sizeof(struct RANAP_RSRVCC_Information),
+	offsetof(struct RANAP_RSRVCC_Information, _asn_ctx),
+	asn_MAP_RANAP_RSRVCC_Information_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_RSRVCC_Information_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RSRVCC_Information = {
+	"RANAP_RSRVCC-Information",
+	"RANAP_RSRVCC-Information",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RSRVCC_Information_tags_1,
+	sizeof(asn_DEF_RANAP_RSRVCC_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_RSRVCC_Information_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RSRVCC_Information_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RSRVCC_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_RSRVCC_Information_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RSRVCC_Information_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_RSRVCC_Information_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RSRVCC-Information.h b/src/ranap/RANAP_RSRVCC-Information.h
new file mode 100644
index 0000000..25f6c6c
--- /dev/null
+++ b/src/ranap/RANAP_RSRVCC-Information.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RSRVCC_Information_H_
+#define	_RANAP_RSRVCC_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include <OCTET_STRING.h>
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RSRVCC-Information */
+typedef struct RANAP_RSRVCC_Information {
+	BIT_STRING_t	 nonce;
+	OCTET_STRING_t	 iMSInformation;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RSRVCC_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RSRVCC_Information;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RSRVCC_Information_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RSRVCC-Operation-Possible.c b/src/ranap/RANAP_RSRVCC-Operation-Possible.c
new file mode 100644
index 0000000..c610cb8
--- /dev/null
+++ b/src/ranap/RANAP_RSRVCC-Operation-Possible.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RSRVCC-Operation-Possible.h"
+
+int
+RANAP_RSRVCC_Operation_Possible_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RSRVCC_Operation_Possible_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_RSRVCC_Operation_Possible_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RSRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RSRVCC_Operation_Possible_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RSRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RSRVCC_Operation_Possible_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RSRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RSRVCC_Operation_Possible_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RSRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RSRVCC_Operation_Possible_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RSRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RSRVCC_Operation_Possible_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RSRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RSRVCC_Operation_Possible_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RSRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RSRVCC_Operation_Possible_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RSRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RSRVCC_Operation_Possible_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RSRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RSRVCC_Operation_Possible_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RSRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RSRVCC_Operation_Possible_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_RSRVCC_Operation_Possible_value2enum_1[] = {
+	{ 0,	15,	"rsrvcc-possible" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_RSRVCC_Operation_Possible_enum2value_1[] = {
+	0	/* rsrvcc-possible(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_RSRVCC_Operation_Possible_specs_1 = {
+	asn_MAP_RANAP_RSRVCC_Operation_Possible_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_RSRVCC_Operation_Possible_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RSRVCC_Operation_Possible_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RSRVCC_Operation_Possible = {
+	"RANAP_RSRVCC-Operation-Possible",
+	"RANAP_RSRVCC-Operation-Possible",
+	RANAP_RSRVCC_Operation_Possible_free,
+	RANAP_RSRVCC_Operation_Possible_print,
+	RANAP_RSRVCC_Operation_Possible_constraint,
+	RANAP_RSRVCC_Operation_Possible_decode_ber,
+	RANAP_RSRVCC_Operation_Possible_encode_der,
+	RANAP_RSRVCC_Operation_Possible_decode_xer,
+	RANAP_RSRVCC_Operation_Possible_encode_xer,
+	RANAP_RSRVCC_Operation_Possible_decode_uper,
+	RANAP_RSRVCC_Operation_Possible_encode_uper,
+	RANAP_RSRVCC_Operation_Possible_decode_aper,
+	RANAP_RSRVCC_Operation_Possible_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RSRVCC_Operation_Possible_tags_1,
+	sizeof(asn_DEF_RANAP_RSRVCC_Operation_Possible_tags_1)
+		/sizeof(asn_DEF_RANAP_RSRVCC_Operation_Possible_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RSRVCC_Operation_Possible_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RSRVCC_Operation_Possible_tags_1)
+		/sizeof(asn_DEF_RANAP_RSRVCC_Operation_Possible_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RSRVCC_Operation_Possible_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_RSRVCC_Operation_Possible_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RSRVCC-Operation-Possible.h b/src/ranap/RANAP_RSRVCC-Operation-Possible.h
new file mode 100644
index 0000000..0be569a
--- /dev/null
+++ b/src/ranap/RANAP_RSRVCC-Operation-Possible.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RSRVCC_Operation_Possible_H_
+#define	_RANAP_RSRVCC_Operation_Possible_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_RSRVCC_Operation_Possible {
+	RANAP_RSRVCC_Operation_Possible_rsrvcc_possible	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_RSRVCC_Operation_Possible;
+
+/* RANAP_RSRVCC-Operation-Possible */
+typedef long	 RANAP_RSRVCC_Operation_Possible_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RSRVCC_Operation_Possible;
+asn_struct_free_f RANAP_RSRVCC_Operation_Possible_free;
+asn_struct_print_f RANAP_RSRVCC_Operation_Possible_print;
+asn_constr_check_f RANAP_RSRVCC_Operation_Possible_constraint;
+ber_type_decoder_f RANAP_RSRVCC_Operation_Possible_decode_ber;
+der_type_encoder_f RANAP_RSRVCC_Operation_Possible_encode_der;
+xer_type_decoder_f RANAP_RSRVCC_Operation_Possible_decode_xer;
+xer_type_encoder_f RANAP_RSRVCC_Operation_Possible_encode_xer;
+per_type_decoder_f RANAP_RSRVCC_Operation_Possible_decode_uper;
+per_type_encoder_f RANAP_RSRVCC_Operation_Possible_encode_uper;
+per_type_decoder_f RANAP_RSRVCC_Operation_Possible_decode_aper;
+per_type_encoder_f RANAP_RSRVCC_Operation_Possible_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RSRVCC_Operation_Possible_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RTLoadValue.c b/src/ranap/RANAP_RTLoadValue.c
new file mode 100644
index 0000000..2dd5f6d
--- /dev/null
+++ b/src/ranap/RANAP_RTLoadValue.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RTLoadValue.h"
+
+int
+RANAP_RTLoadValue_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 100l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RTLoadValue_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_RTLoadValue_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RTLoadValue_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RTLoadValue_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RTLoadValue_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RTLoadValue_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RTLoadValue_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RTLoadValue_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RTLoadValue_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RTLoadValue_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RTLoadValue_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RTLoadValue_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RTLoadValue_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RTLoadValue_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RTLoadValue_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RTLoadValue_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RTLoadValue_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RTLoadValue_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RTLoadValue_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RTLoadValue_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RTLoadValue_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RTLoadValue_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  0l,  100l }	/* (0..100) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RTLoadValue_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RTLoadValue = {
+	"RANAP_RTLoadValue",
+	"RANAP_RTLoadValue",
+	RANAP_RTLoadValue_free,
+	RANAP_RTLoadValue_print,
+	RANAP_RTLoadValue_constraint,
+	RANAP_RTLoadValue_decode_ber,
+	RANAP_RTLoadValue_encode_der,
+	RANAP_RTLoadValue_decode_xer,
+	RANAP_RTLoadValue_encode_xer,
+	RANAP_RTLoadValue_decode_uper,
+	RANAP_RTLoadValue_encode_uper,
+	RANAP_RTLoadValue_decode_aper,
+	RANAP_RTLoadValue_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RTLoadValue_tags_1,
+	sizeof(asn_DEF_RANAP_RTLoadValue_tags_1)
+		/sizeof(asn_DEF_RANAP_RTLoadValue_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RTLoadValue_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RTLoadValue_tags_1)
+		/sizeof(asn_DEF_RANAP_RTLoadValue_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RTLoadValue_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_RTLoadValue.h b/src/ranap/RANAP_RTLoadValue.h
new file mode 100644
index 0000000..4e5fb5c
--- /dev/null
+++ b/src/ranap/RANAP_RTLoadValue.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RTLoadValue_H_
+#define	_RANAP_RTLoadValue_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RTLoadValue */
+typedef long	 RANAP_RTLoadValue_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RTLoadValue;
+asn_struct_free_f RANAP_RTLoadValue_free;
+asn_struct_print_f RANAP_RTLoadValue_print;
+asn_constr_check_f RANAP_RTLoadValue_constraint;
+ber_type_decoder_f RANAP_RTLoadValue_decode_ber;
+der_type_encoder_f RANAP_RTLoadValue_encode_der;
+xer_type_decoder_f RANAP_RTLoadValue_decode_xer;
+xer_type_encoder_f RANAP_RTLoadValue_encode_xer;
+per_type_decoder_f RANAP_RTLoadValue_decode_uper;
+per_type_encoder_f RANAP_RTLoadValue_encode_uper;
+per_type_decoder_f RANAP_RTLoadValue_decode_aper;
+per_type_encoder_f RANAP_RTLoadValue_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RTLoadValue_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RateControlAllowed.c b/src/ranap/RANAP_RateControlAllowed.c
new file mode 100644
index 0000000..328a1d7
--- /dev/null
+++ b/src/ranap/RANAP_RateControlAllowed.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RateControlAllowed.h"
+
+int
+RANAP_RateControlAllowed_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RateControlAllowed_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_RateControlAllowed_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RateControlAllowed_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RateControlAllowed_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RateControlAllowed_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RateControlAllowed_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RateControlAllowed_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RateControlAllowed_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RateControlAllowed_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RateControlAllowed_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RateControlAllowed_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RateControlAllowed_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RateControlAllowed_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RateControlAllowed_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RateControlAllowed_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RateControlAllowed_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RateControlAllowed_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RateControlAllowed_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RateControlAllowed_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RateControlAllowed_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RateControlAllowed_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RateControlAllowed_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 1,  1,  0l,  1l }	/* (0..1) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_RateControlAllowed_value2enum_1[] = {
+	{ 0,	11,	"not-allowed" },
+	{ 1,	7,	"allowed" }
+};
+static const unsigned int asn_MAP_RANAP_RateControlAllowed_enum2value_1[] = {
+	1,	/* allowed(1) */
+	0	/* not-allowed(0) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_RateControlAllowed_specs_1 = {
+	asn_MAP_RANAP_RateControlAllowed_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_RateControlAllowed_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RateControlAllowed_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RateControlAllowed = {
+	"RANAP_RateControlAllowed",
+	"RANAP_RateControlAllowed",
+	RANAP_RateControlAllowed_free,
+	RANAP_RateControlAllowed_print,
+	RANAP_RateControlAllowed_constraint,
+	RANAP_RateControlAllowed_decode_ber,
+	RANAP_RateControlAllowed_encode_der,
+	RANAP_RateControlAllowed_decode_xer,
+	RANAP_RateControlAllowed_encode_xer,
+	RANAP_RateControlAllowed_decode_uper,
+	RANAP_RateControlAllowed_encode_uper,
+	RANAP_RateControlAllowed_decode_aper,
+	RANAP_RateControlAllowed_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RateControlAllowed_tags_1,
+	sizeof(asn_DEF_RANAP_RateControlAllowed_tags_1)
+		/sizeof(asn_DEF_RANAP_RateControlAllowed_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RateControlAllowed_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RateControlAllowed_tags_1)
+		/sizeof(asn_DEF_RANAP_RateControlAllowed_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RateControlAllowed_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_RateControlAllowed_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RateControlAllowed.h b/src/ranap/RANAP_RateControlAllowed.h
new file mode 100644
index 0000000..a465d17
--- /dev/null
+++ b/src/ranap/RANAP_RateControlAllowed.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RateControlAllowed_H_
+#define	_RANAP_RateControlAllowed_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_RateControlAllowed {
+	RANAP_RateControlAllowed_not_allowed	= 0,
+	RANAP_RateControlAllowed_allowed	= 1
+} e_RANAP_RateControlAllowed;
+
+/* RANAP_RateControlAllowed */
+typedef long	 RANAP_RateControlAllowed_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RateControlAllowed;
+asn_struct_free_f RANAP_RateControlAllowed_free;
+asn_struct_print_f RANAP_RateControlAllowed_print;
+asn_constr_check_f RANAP_RateControlAllowed_constraint;
+ber_type_decoder_f RANAP_RateControlAllowed_decode_ber;
+der_type_encoder_f RANAP_RateControlAllowed_encode_der;
+xer_type_decoder_f RANAP_RateControlAllowed_decode_xer;
+xer_type_encoder_f RANAP_RateControlAllowed_encode_xer;
+per_type_decoder_f RANAP_RateControlAllowed_decode_uper;
+per_type_encoder_f RANAP_RateControlAllowed_encode_uper;
+per_type_decoder_f RANAP_RateControlAllowed_decode_aper;
+per_type_encoder_f RANAP_RateControlAllowed_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RateControlAllowed_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RedirectAttemptFlag.c b/src/ranap/RANAP_RedirectAttemptFlag.c
new file mode 100644
index 0000000..3011468
--- /dev/null
+++ b/src/ranap/RANAP_RedirectAttemptFlag.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RedirectAttemptFlag.h"
+
+int
+RANAP_RedirectAttemptFlag_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NULL.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NULL,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RedirectAttemptFlag_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NULL.free_struct;
+	td->print_struct   = asn_DEF_NULL.print_struct;
+	td->check_constraints = asn_DEF_NULL.check_constraints;
+	td->ber_decoder    = asn_DEF_NULL.ber_decoder;
+	td->der_encoder    = asn_DEF_NULL.der_encoder;
+	td->xer_decoder    = asn_DEF_NULL.xer_decoder;
+	td->xer_encoder    = asn_DEF_NULL.xer_encoder;
+	td->uper_decoder   = asn_DEF_NULL.uper_decoder;
+	td->uper_encoder   = asn_DEF_NULL.uper_encoder;
+	td->aper_decoder   = asn_DEF_NULL.aper_decoder;
+	td->aper_encoder   = asn_DEF_NULL.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NULL.per_constraints;
+	td->elements       = asn_DEF_NULL.elements;
+	td->elements_count = asn_DEF_NULL.elements_count;
+	td->specifics      = asn_DEF_NULL.specifics;
+}
+
+void
+RANAP_RedirectAttemptFlag_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RedirectAttemptFlag_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RedirectAttemptFlag_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RedirectAttemptFlag_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RedirectAttemptFlag_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RedirectAttemptFlag_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RedirectAttemptFlag_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RedirectAttemptFlag_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RedirectAttemptFlag_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RedirectAttemptFlag_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RedirectAttemptFlag_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RedirectAttemptFlag_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RedirectAttemptFlag_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RedirectAttemptFlag_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RedirectAttemptFlag_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RedirectAttemptFlag_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RedirectAttemptFlag_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RedirectAttemptFlag_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RedirectAttemptFlag_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RedirectAttemptFlag_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_RedirectAttemptFlag_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (5 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RedirectAttemptFlag = {
+	"RANAP_RedirectAttemptFlag",
+	"RANAP_RedirectAttemptFlag",
+	RANAP_RedirectAttemptFlag_free,
+	RANAP_RedirectAttemptFlag_print,
+	RANAP_RedirectAttemptFlag_constraint,
+	RANAP_RedirectAttemptFlag_decode_ber,
+	RANAP_RedirectAttemptFlag_encode_der,
+	RANAP_RedirectAttemptFlag_decode_xer,
+	RANAP_RedirectAttemptFlag_encode_xer,
+	RANAP_RedirectAttemptFlag_decode_uper,
+	RANAP_RedirectAttemptFlag_encode_uper,
+	RANAP_RedirectAttemptFlag_decode_aper,
+	RANAP_RedirectAttemptFlag_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RedirectAttemptFlag_tags_1,
+	sizeof(asn_DEF_RANAP_RedirectAttemptFlag_tags_1)
+		/sizeof(asn_DEF_RANAP_RedirectAttemptFlag_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RedirectAttemptFlag_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RedirectAttemptFlag_tags_1)
+		/sizeof(asn_DEF_RANAP_RedirectAttemptFlag_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_RedirectAttemptFlag.h b/src/ranap/RANAP_RedirectAttemptFlag.h
new file mode 100644
index 0000000..df1be41
--- /dev/null
+++ b/src/ranap/RANAP_RedirectAttemptFlag.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RedirectAttemptFlag_H_
+#define	_RANAP_RedirectAttemptFlag_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NULL.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RedirectAttemptFlag */
+typedef NULL_t	 RANAP_RedirectAttemptFlag_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RedirectAttemptFlag;
+asn_struct_free_f RANAP_RedirectAttemptFlag_free;
+asn_struct_print_f RANAP_RedirectAttemptFlag_print;
+asn_constr_check_f RANAP_RedirectAttemptFlag_constraint;
+ber_type_decoder_f RANAP_RedirectAttemptFlag_decode_ber;
+der_type_encoder_f RANAP_RedirectAttemptFlag_encode_der;
+xer_type_decoder_f RANAP_RedirectAttemptFlag_decode_xer;
+xer_type_encoder_f RANAP_RedirectAttemptFlag_encode_xer;
+per_type_decoder_f RANAP_RedirectAttemptFlag_decode_uper;
+per_type_encoder_f RANAP_RedirectAttemptFlag_encode_uper;
+per_type_decoder_f RANAP_RedirectAttemptFlag_decode_aper;
+per_type_encoder_f RANAP_RedirectAttemptFlag_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RedirectAttemptFlag_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RedirectionCompleted.c b/src/ranap/RANAP_RedirectionCompleted.c
new file mode 100644
index 0000000..eb88015
--- /dev/null
+++ b/src/ranap/RANAP_RedirectionCompleted.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RedirectionCompleted.h"
+
+int
+RANAP_RedirectionCompleted_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RedirectionCompleted_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_RedirectionCompleted_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RedirectionCompleted_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RedirectionCompleted_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RedirectionCompleted_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RedirectionCompleted_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RedirectionCompleted_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RedirectionCompleted_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RedirectionCompleted_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RedirectionCompleted_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RedirectionCompleted_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RedirectionCompleted_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RedirectionCompleted_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RedirectionCompleted_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RedirectionCompleted_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RedirectionCompleted_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RedirectionCompleted_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RedirectionCompleted_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RedirectionCompleted_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RedirectionCompleted_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RedirectionCompleted_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RedirectionCompleted_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_RedirectionCompleted_value2enum_1[] = {
+	{ 0,	21,	"redirection-completed" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_RedirectionCompleted_enum2value_1[] = {
+	0	/* redirection-completed(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_RedirectionCompleted_specs_1 = {
+	asn_MAP_RANAP_RedirectionCompleted_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_RedirectionCompleted_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RedirectionCompleted_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RedirectionCompleted = {
+	"RANAP_RedirectionCompleted",
+	"RANAP_RedirectionCompleted",
+	RANAP_RedirectionCompleted_free,
+	RANAP_RedirectionCompleted_print,
+	RANAP_RedirectionCompleted_constraint,
+	RANAP_RedirectionCompleted_decode_ber,
+	RANAP_RedirectionCompleted_encode_der,
+	RANAP_RedirectionCompleted_decode_xer,
+	RANAP_RedirectionCompleted_encode_xer,
+	RANAP_RedirectionCompleted_decode_uper,
+	RANAP_RedirectionCompleted_encode_uper,
+	RANAP_RedirectionCompleted_decode_aper,
+	RANAP_RedirectionCompleted_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RedirectionCompleted_tags_1,
+	sizeof(asn_DEF_RANAP_RedirectionCompleted_tags_1)
+		/sizeof(asn_DEF_RANAP_RedirectionCompleted_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RedirectionCompleted_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RedirectionCompleted_tags_1)
+		/sizeof(asn_DEF_RANAP_RedirectionCompleted_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RedirectionCompleted_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_RedirectionCompleted_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RedirectionCompleted.h b/src/ranap/RANAP_RedirectionCompleted.h
new file mode 100644
index 0000000..21eabeb
--- /dev/null
+++ b/src/ranap/RANAP_RedirectionCompleted.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RedirectionCompleted_H_
+#define	_RANAP_RedirectionCompleted_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_RedirectionCompleted {
+	RANAP_RedirectionCompleted_redirection_completed	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_RedirectionCompleted;
+
+/* RANAP_RedirectionCompleted */
+typedef long	 RANAP_RedirectionCompleted_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RedirectionCompleted;
+asn_struct_free_f RANAP_RedirectionCompleted_free;
+asn_struct_print_f RANAP_RedirectionCompleted_print;
+asn_constr_check_f RANAP_RedirectionCompleted_constraint;
+ber_type_decoder_f RANAP_RedirectionCompleted_decode_ber;
+der_type_encoder_f RANAP_RedirectionCompleted_encode_der;
+xer_type_decoder_f RANAP_RedirectionCompleted_decode_xer;
+xer_type_encoder_f RANAP_RedirectionCompleted_encode_xer;
+per_type_decoder_f RANAP_RedirectionCompleted_decode_uper;
+per_type_encoder_f RANAP_RedirectionCompleted_encode_uper;
+per_type_decoder_f RANAP_RedirectionCompleted_decode_aper;
+per_type_encoder_f RANAP_RedirectionCompleted_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RedirectionCompleted_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RejectCauseValue.c b/src/ranap/RANAP_RejectCauseValue.c
new file mode 100644
index 0000000..234964d
--- /dev/null
+++ b/src/ranap/RANAP_RejectCauseValue.c
@@ -0,0 +1,179 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RejectCauseValue.h"
+
+int
+RANAP_RejectCauseValue_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RejectCauseValue_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_RejectCauseValue_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RejectCauseValue_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RejectCauseValue_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RejectCauseValue_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RejectCauseValue_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RejectCauseValue_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RejectCauseValue_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RejectCauseValue_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RejectCauseValue_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RejectCauseValue_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RejectCauseValue_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RejectCauseValue_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RejectCauseValue_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RejectCauseValue_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RejectCauseValue_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RejectCauseValue_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RejectCauseValue_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RejectCauseValue_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RejectCauseValue_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RejectCauseValue_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RejectCauseValue_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0l,  5l }	/* (0..5,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_RejectCauseValue_value2enum_1[] = {
+	{ 0,	16,	"pLMN-Not-Allowed" },
+	{ 1,	25,	"location-Area-Not-Allowed" },
+	{ 2,	41,	"roaming-Not-Allowed-In-This-Location-Area" },
+	{ 3,	33,	"no-Suitable-Cell-In-Location-Area" },
+	{ 4,	38,	"gPRS-Services-Not-Allowed-In-This-PLMN" },
+	{ 5,	27,	"cS-PS-coordination-required" },
+	{ 6,	15,	"network-failure" },
+	{ 7,	27,	"not-authorized-for-this-CSG" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_RejectCauseValue_enum2value_1[] = {
+	5,	/* cS-PS-coordination-required(5) */
+	4,	/* gPRS-Services-Not-Allowed-In-This-PLMN(4) */
+	1,	/* location-Area-Not-Allowed(1) */
+	6,	/* network-failure(6) */
+	3,	/* no-Suitable-Cell-In-Location-Area(3) */
+	7,	/* not-authorized-for-this-CSG(7) */
+	0,	/* pLMN-Not-Allowed(0) */
+	2	/* roaming-Not-Allowed-In-This-Location-Area(2) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_RejectCauseValue_specs_1 = {
+	asn_MAP_RANAP_RejectCauseValue_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_RejectCauseValue_enum2value_1,	/* N => "tag"; sorted by N */
+	8,	/* Number of elements in the maps */
+	7,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RejectCauseValue_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RejectCauseValue = {
+	"RANAP_RejectCauseValue",
+	"RANAP_RejectCauseValue",
+	RANAP_RejectCauseValue_free,
+	RANAP_RejectCauseValue_print,
+	RANAP_RejectCauseValue_constraint,
+	RANAP_RejectCauseValue_decode_ber,
+	RANAP_RejectCauseValue_encode_der,
+	RANAP_RejectCauseValue_decode_xer,
+	RANAP_RejectCauseValue_encode_xer,
+	RANAP_RejectCauseValue_decode_uper,
+	RANAP_RejectCauseValue_encode_uper,
+	RANAP_RejectCauseValue_decode_aper,
+	RANAP_RejectCauseValue_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RejectCauseValue_tags_1,
+	sizeof(asn_DEF_RANAP_RejectCauseValue_tags_1)
+		/sizeof(asn_DEF_RANAP_RejectCauseValue_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RejectCauseValue_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RejectCauseValue_tags_1)
+		/sizeof(asn_DEF_RANAP_RejectCauseValue_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RejectCauseValue_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_RejectCauseValue_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RejectCauseValue.h b/src/ranap/RANAP_RejectCauseValue.h
new file mode 100644
index 0000000..0a5f26f
--- /dev/null
+++ b/src/ranap/RANAP_RejectCauseValue.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RejectCauseValue_H_
+#define	_RANAP_RejectCauseValue_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_RejectCauseValue {
+	RANAP_RejectCauseValue_pLMN_Not_Allowed	= 0,
+	RANAP_RejectCauseValue_location_Area_Not_Allowed	= 1,
+	RANAP_RejectCauseValue_roaming_Not_Allowed_In_This_Location_Area	= 2,
+	RANAP_RejectCauseValue_no_Suitable_Cell_In_Location_Area	= 3,
+	RANAP_RejectCauseValue_gPRS_Services_Not_Allowed_In_This_PLMN	= 4,
+	RANAP_RejectCauseValue_cS_PS_coordination_required	= 5,
+	/*
+	 * Enumeration is extensible
+	 */
+	RANAP_RejectCauseValue_network_failure	= 6,
+	RANAP_RejectCauseValue_not_authorized_for_this_CSG	= 7
+} e_RANAP_RejectCauseValue;
+
+/* RANAP_RejectCauseValue */
+typedef long	 RANAP_RejectCauseValue_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RejectCauseValue;
+asn_struct_free_f RANAP_RejectCauseValue_free;
+asn_struct_print_f RANAP_RejectCauseValue_print;
+asn_constr_check_f RANAP_RejectCauseValue_constraint;
+ber_type_decoder_f RANAP_RejectCauseValue_decode_ber;
+der_type_encoder_f RANAP_RejectCauseValue_encode_der;
+xer_type_decoder_f RANAP_RejectCauseValue_decode_xer;
+xer_type_encoder_f RANAP_RejectCauseValue_encode_xer;
+per_type_decoder_f RANAP_RejectCauseValue_decode_uper;
+per_type_encoder_f RANAP_RejectCauseValue_encode_uper;
+per_type_decoder_f RANAP_RejectCauseValue_decode_aper;
+per_type_encoder_f RANAP_RejectCauseValue_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RejectCauseValue_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RelocationCancel.c b/src/ranap/RANAP_RelocationCancel.c
new file mode 100644
index 0000000..9b13c13
--- /dev/null
+++ b/src/ranap/RANAP_RelocationCancel.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RelocationCancel.h"
+
+static int
+memb_relocationCancel_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_relocationCancel_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_relocationCancel_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_relocationCancel_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_relocationCancel_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_relocationCancel_ies_specs_2 = {
+	sizeof(struct relocationCancel_ies),
+	offsetof(struct relocationCancel_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_relocationCancel_ies_2 = {
+	"relocationCancel-ies",
+	"relocationCancel-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_relocationCancel_ies_tags_2,
+	sizeof(asn_DEF_relocationCancel_ies_tags_2)
+		/sizeof(asn_DEF_relocationCancel_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_relocationCancel_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_relocationCancel_ies_tags_2)
+		/sizeof(asn_DEF_relocationCancel_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_relocationCancel_ies_constr_2,
+	asn_MBR_relocationCancel_ies_2,
+	1,	/* Single element */
+	&asn_SPC_relocationCancel_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RelocationCancel_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RelocationCancel, relocationCancel_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_relocationCancel_ies_2,
+		memb_relocationCancel_ies_constraint_1,
+		&asn_PER_memb_relocationCancel_ies_constr_2,
+		0,
+		"relocationCancel-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RelocationCancel_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RelocationCancel_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* relocationCancel-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RelocationCancel_specs_1 = {
+	sizeof(struct RANAP_RelocationCancel),
+	offsetof(struct RANAP_RelocationCancel, _asn_ctx),
+	asn_MAP_RANAP_RelocationCancel_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationCancel = {
+	"RANAP_RelocationCancel",
+	"RANAP_RelocationCancel",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RelocationCancel_tags_1,
+	sizeof(asn_DEF_RANAP_RelocationCancel_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationCancel_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RelocationCancel_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RelocationCancel_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationCancel_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RelocationCancel_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RelocationCancel_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RelocationCancel.h b/src/ranap/RANAP_RelocationCancel.h
new file mode 100644
index 0000000..12e641c
--- /dev/null
+++ b/src/ranap/RANAP_RelocationCancel.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RelocationCancel_H_
+#define	_RANAP_RelocationCancel_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RelocationCancel */
+typedef struct RANAP_RelocationCancel {
+	struct relocationCancel_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} relocationCancel_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RelocationCancel_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationCancel;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RelocationCancel_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RelocationCancelAcknowledge.c b/src/ranap/RANAP_RelocationCancelAcknowledge.c
new file mode 100644
index 0000000..ba9d99b
--- /dev/null
+++ b/src/ranap/RANAP_RelocationCancelAcknowledge.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RelocationCancelAcknowledge.h"
+
+static int
+memb_relocationCancelAcknowledge_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_relocationCancelAcknowledge_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_relocationCancelAcknowledge_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_relocationCancelAcknowledge_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_relocationCancelAcknowledge_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_relocationCancelAcknowledge_ies_specs_2 = {
+	sizeof(struct relocationCancelAcknowledge_ies),
+	offsetof(struct relocationCancelAcknowledge_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_relocationCancelAcknowledge_ies_2 = {
+	"relocationCancelAcknowledge-ies",
+	"relocationCancelAcknowledge-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_relocationCancelAcknowledge_ies_tags_2,
+	sizeof(asn_DEF_relocationCancelAcknowledge_ies_tags_2)
+		/sizeof(asn_DEF_relocationCancelAcknowledge_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_relocationCancelAcknowledge_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_relocationCancelAcknowledge_ies_tags_2)
+		/sizeof(asn_DEF_relocationCancelAcknowledge_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_relocationCancelAcknowledge_ies_constr_2,
+	asn_MBR_relocationCancelAcknowledge_ies_2,
+	1,	/* Single element */
+	&asn_SPC_relocationCancelAcknowledge_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RelocationCancelAcknowledge_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RelocationCancelAcknowledge, relocationCancelAcknowledge_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_relocationCancelAcknowledge_ies_2,
+		memb_relocationCancelAcknowledge_ies_constraint_1,
+		&asn_PER_memb_relocationCancelAcknowledge_ies_constr_2,
+		0,
+		"relocationCancelAcknowledge-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RelocationCancelAcknowledge_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RelocationCancelAcknowledge_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* relocationCancelAcknowledge-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RelocationCancelAcknowledge_specs_1 = {
+	sizeof(struct RANAP_RelocationCancelAcknowledge),
+	offsetof(struct RANAP_RelocationCancelAcknowledge, _asn_ctx),
+	asn_MAP_RANAP_RelocationCancelAcknowledge_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationCancelAcknowledge = {
+	"RANAP_RelocationCancelAcknowledge",
+	"RANAP_RelocationCancelAcknowledge",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RelocationCancelAcknowledge_tags_1,
+	sizeof(asn_DEF_RANAP_RelocationCancelAcknowledge_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationCancelAcknowledge_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RelocationCancelAcknowledge_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RelocationCancelAcknowledge_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationCancelAcknowledge_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RelocationCancelAcknowledge_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RelocationCancelAcknowledge_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RelocationCancelAcknowledge.h b/src/ranap/RANAP_RelocationCancelAcknowledge.h
new file mode 100644
index 0000000..ef13259
--- /dev/null
+++ b/src/ranap/RANAP_RelocationCancelAcknowledge.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RelocationCancelAcknowledge_H_
+#define	_RANAP_RelocationCancelAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RelocationCancelAcknowledge */
+typedef struct RANAP_RelocationCancelAcknowledge {
+	struct relocationCancelAcknowledge_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} relocationCancelAcknowledge_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RelocationCancelAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationCancelAcknowledge;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RelocationCancelAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RelocationCommand.c b/src/ranap/RANAP_RelocationCommand.c
new file mode 100644
index 0000000..ca49adf
--- /dev/null
+++ b/src/ranap/RANAP_RelocationCommand.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RelocationCommand.h"
+
+static int
+memb_relocationCommand_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_relocationCommand_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_relocationCommand_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_relocationCommand_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_relocationCommand_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_relocationCommand_ies_specs_2 = {
+	sizeof(struct relocationCommand_ies),
+	offsetof(struct relocationCommand_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_relocationCommand_ies_2 = {
+	"relocationCommand-ies",
+	"relocationCommand-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_relocationCommand_ies_tags_2,
+	sizeof(asn_DEF_relocationCommand_ies_tags_2)
+		/sizeof(asn_DEF_relocationCommand_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_relocationCommand_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_relocationCommand_ies_tags_2)
+		/sizeof(asn_DEF_relocationCommand_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_relocationCommand_ies_constr_2,
+	asn_MBR_relocationCommand_ies_2,
+	1,	/* Single element */
+	&asn_SPC_relocationCommand_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RelocationCommand_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RelocationCommand, relocationCommand_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_relocationCommand_ies_2,
+		memb_relocationCommand_ies_constraint_1,
+		&asn_PER_memb_relocationCommand_ies_constr_2,
+		0,
+		"relocationCommand-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RelocationCommand_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RelocationCommand_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* relocationCommand-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RelocationCommand_specs_1 = {
+	sizeof(struct RANAP_RelocationCommand),
+	offsetof(struct RANAP_RelocationCommand, _asn_ctx),
+	asn_MAP_RANAP_RelocationCommand_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationCommand = {
+	"RANAP_RelocationCommand",
+	"RANAP_RelocationCommand",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RelocationCommand_tags_1,
+	sizeof(asn_DEF_RANAP_RelocationCommand_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationCommand_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RelocationCommand_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RelocationCommand_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationCommand_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RelocationCommand_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RelocationCommand_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RelocationCommand.h b/src/ranap/RANAP_RelocationCommand.h
new file mode 100644
index 0000000..12c9430
--- /dev/null
+++ b/src/ranap/RANAP_RelocationCommand.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RelocationCommand_H_
+#define	_RANAP_RelocationCommand_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RelocationCommand */
+typedef struct RANAP_RelocationCommand {
+	struct relocationCommand_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} relocationCommand_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RelocationCommand_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationCommand;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RelocationCommand_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RelocationComplete.c b/src/ranap/RANAP_RelocationComplete.c
new file mode 100644
index 0000000..634188e
--- /dev/null
+++ b/src/ranap/RANAP_RelocationComplete.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RelocationComplete.h"
+
+static int
+memb_relocationComplete_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_relocationComplete_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_relocationComplete_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_relocationComplete_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_relocationComplete_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_relocationComplete_ies_specs_2 = {
+	sizeof(struct relocationComplete_ies),
+	offsetof(struct relocationComplete_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_relocationComplete_ies_2 = {
+	"relocationComplete-ies",
+	"relocationComplete-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_relocationComplete_ies_tags_2,
+	sizeof(asn_DEF_relocationComplete_ies_tags_2)
+		/sizeof(asn_DEF_relocationComplete_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_relocationComplete_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_relocationComplete_ies_tags_2)
+		/sizeof(asn_DEF_relocationComplete_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_relocationComplete_ies_constr_2,
+	asn_MBR_relocationComplete_ies_2,
+	1,	/* Single element */
+	&asn_SPC_relocationComplete_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RelocationComplete_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RelocationComplete, relocationComplete_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_relocationComplete_ies_2,
+		memb_relocationComplete_ies_constraint_1,
+		&asn_PER_memb_relocationComplete_ies_constr_2,
+		0,
+		"relocationComplete-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RelocationComplete_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RelocationComplete_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* relocationComplete-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RelocationComplete_specs_1 = {
+	sizeof(struct RANAP_RelocationComplete),
+	offsetof(struct RANAP_RelocationComplete, _asn_ctx),
+	asn_MAP_RANAP_RelocationComplete_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationComplete = {
+	"RANAP_RelocationComplete",
+	"RANAP_RelocationComplete",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RelocationComplete_tags_1,
+	sizeof(asn_DEF_RANAP_RelocationComplete_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationComplete_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RelocationComplete_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RelocationComplete_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationComplete_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RelocationComplete_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RelocationComplete_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RelocationComplete.h b/src/ranap/RANAP_RelocationComplete.h
new file mode 100644
index 0000000..fc0fe17
--- /dev/null
+++ b/src/ranap/RANAP_RelocationComplete.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RelocationComplete_H_
+#define	_RANAP_RelocationComplete_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RelocationComplete */
+typedef struct RANAP_RelocationComplete {
+	struct relocationComplete_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} relocationComplete_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RelocationComplete_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationComplete;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RelocationComplete_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RelocationDetect.c b/src/ranap/RANAP_RelocationDetect.c
new file mode 100644
index 0000000..dfee820
--- /dev/null
+++ b/src/ranap/RANAP_RelocationDetect.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RelocationDetect.h"
+
+static int
+memb_relocationDetect_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_relocationDetect_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_relocationDetect_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_relocationDetect_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_relocationDetect_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_relocationDetect_ies_specs_2 = {
+	sizeof(struct relocationDetect_ies),
+	offsetof(struct relocationDetect_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_relocationDetect_ies_2 = {
+	"relocationDetect-ies",
+	"relocationDetect-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_relocationDetect_ies_tags_2,
+	sizeof(asn_DEF_relocationDetect_ies_tags_2)
+		/sizeof(asn_DEF_relocationDetect_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_relocationDetect_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_relocationDetect_ies_tags_2)
+		/sizeof(asn_DEF_relocationDetect_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_relocationDetect_ies_constr_2,
+	asn_MBR_relocationDetect_ies_2,
+	1,	/* Single element */
+	&asn_SPC_relocationDetect_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RelocationDetect_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RelocationDetect, relocationDetect_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_relocationDetect_ies_2,
+		memb_relocationDetect_ies_constraint_1,
+		&asn_PER_memb_relocationDetect_ies_constr_2,
+		0,
+		"relocationDetect-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RelocationDetect_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RelocationDetect_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* relocationDetect-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RelocationDetect_specs_1 = {
+	sizeof(struct RANAP_RelocationDetect),
+	offsetof(struct RANAP_RelocationDetect, _asn_ctx),
+	asn_MAP_RANAP_RelocationDetect_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationDetect = {
+	"RANAP_RelocationDetect",
+	"RANAP_RelocationDetect",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RelocationDetect_tags_1,
+	sizeof(asn_DEF_RANAP_RelocationDetect_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationDetect_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RelocationDetect_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RelocationDetect_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationDetect_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RelocationDetect_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RelocationDetect_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RelocationDetect.h b/src/ranap/RANAP_RelocationDetect.h
new file mode 100644
index 0000000..d425f65
--- /dev/null
+++ b/src/ranap/RANAP_RelocationDetect.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RelocationDetect_H_
+#define	_RANAP_RelocationDetect_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RelocationDetect */
+typedef struct RANAP_RelocationDetect {
+	struct relocationDetect_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} relocationDetect_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RelocationDetect_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationDetect;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RelocationDetect_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RelocationFailure.c b/src/ranap/RANAP_RelocationFailure.c
new file mode 100644
index 0000000..f9d343d
--- /dev/null
+++ b/src/ranap/RANAP_RelocationFailure.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RelocationFailure.h"
+
+static int
+memb_relocationFailure_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_relocationFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_relocationFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_relocationFailure_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_relocationFailure_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_relocationFailure_ies_specs_2 = {
+	sizeof(struct relocationFailure_ies),
+	offsetof(struct relocationFailure_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_relocationFailure_ies_2 = {
+	"relocationFailure-ies",
+	"relocationFailure-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_relocationFailure_ies_tags_2,
+	sizeof(asn_DEF_relocationFailure_ies_tags_2)
+		/sizeof(asn_DEF_relocationFailure_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_relocationFailure_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_relocationFailure_ies_tags_2)
+		/sizeof(asn_DEF_relocationFailure_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_relocationFailure_ies_constr_2,
+	asn_MBR_relocationFailure_ies_2,
+	1,	/* Single element */
+	&asn_SPC_relocationFailure_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RelocationFailure_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RelocationFailure, relocationFailure_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_relocationFailure_ies_2,
+		memb_relocationFailure_ies_constraint_1,
+		&asn_PER_memb_relocationFailure_ies_constr_2,
+		0,
+		"relocationFailure-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RelocationFailure_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RelocationFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* relocationFailure-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RelocationFailure_specs_1 = {
+	sizeof(struct RANAP_RelocationFailure),
+	offsetof(struct RANAP_RelocationFailure, _asn_ctx),
+	asn_MAP_RANAP_RelocationFailure_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationFailure = {
+	"RANAP_RelocationFailure",
+	"RANAP_RelocationFailure",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RelocationFailure_tags_1,
+	sizeof(asn_DEF_RANAP_RelocationFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationFailure_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RelocationFailure_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RelocationFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationFailure_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RelocationFailure_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RelocationFailure_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RelocationFailure.h b/src/ranap/RANAP_RelocationFailure.h
new file mode 100644
index 0000000..a629f60
--- /dev/null
+++ b/src/ranap/RANAP_RelocationFailure.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RelocationFailure_H_
+#define	_RANAP_RelocationFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RelocationFailure */
+typedef struct RANAP_RelocationFailure {
+	struct relocationFailure_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} relocationFailure_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RelocationFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RelocationFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RelocationPreparationFailure.c b/src/ranap/RANAP_RelocationPreparationFailure.c
new file mode 100644
index 0000000..b50877e
--- /dev/null
+++ b/src/ranap/RANAP_RelocationPreparationFailure.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RelocationPreparationFailure.h"
+
+static int
+memb_relocationPreparationFailure_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_relocationPreparationFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_relocationPreparationFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_relocationPreparationFailure_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_relocationPreparationFailure_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_relocationPreparationFailure_ies_specs_2 = {
+	sizeof(struct relocationPreparationFailure_ies),
+	offsetof(struct relocationPreparationFailure_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_relocationPreparationFailure_ies_2 = {
+	"relocationPreparationFailure-ies",
+	"relocationPreparationFailure-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_relocationPreparationFailure_ies_tags_2,
+	sizeof(asn_DEF_relocationPreparationFailure_ies_tags_2)
+		/sizeof(asn_DEF_relocationPreparationFailure_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_relocationPreparationFailure_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_relocationPreparationFailure_ies_tags_2)
+		/sizeof(asn_DEF_relocationPreparationFailure_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_relocationPreparationFailure_ies_constr_2,
+	asn_MBR_relocationPreparationFailure_ies_2,
+	1,	/* Single element */
+	&asn_SPC_relocationPreparationFailure_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RelocationPreparationFailure_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RelocationPreparationFailure, relocationPreparationFailure_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_relocationPreparationFailure_ies_2,
+		memb_relocationPreparationFailure_ies_constraint_1,
+		&asn_PER_memb_relocationPreparationFailure_ies_constr_2,
+		0,
+		"relocationPreparationFailure-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RelocationPreparationFailure_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RelocationPreparationFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* relocationPreparationFailure-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RelocationPreparationFailure_specs_1 = {
+	sizeof(struct RANAP_RelocationPreparationFailure),
+	offsetof(struct RANAP_RelocationPreparationFailure, _asn_ctx),
+	asn_MAP_RANAP_RelocationPreparationFailure_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationPreparationFailure = {
+	"RANAP_RelocationPreparationFailure",
+	"RANAP_RelocationPreparationFailure",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RelocationPreparationFailure_tags_1,
+	sizeof(asn_DEF_RANAP_RelocationPreparationFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationPreparationFailure_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RelocationPreparationFailure_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RelocationPreparationFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationPreparationFailure_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RelocationPreparationFailure_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RelocationPreparationFailure_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RelocationPreparationFailure.h b/src/ranap/RANAP_RelocationPreparationFailure.h
new file mode 100644
index 0000000..d5f28de
--- /dev/null
+++ b/src/ranap/RANAP_RelocationPreparationFailure.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RelocationPreparationFailure_H_
+#define	_RANAP_RelocationPreparationFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RelocationPreparationFailure */
+typedef struct RANAP_RelocationPreparationFailure {
+	struct relocationPreparationFailure_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} relocationPreparationFailure_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RelocationPreparationFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationPreparationFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RelocationPreparationFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RelocationRequest.c b/src/ranap/RANAP_RelocationRequest.c
new file mode 100644
index 0000000..87424c6
--- /dev/null
+++ b/src/ranap/RANAP_RelocationRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RelocationRequest.h"
+
+static int
+memb_relocationRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_relocationRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_relocationRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_relocationRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_relocationRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_relocationRequest_ies_specs_2 = {
+	sizeof(struct relocationRequest_ies),
+	offsetof(struct relocationRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_relocationRequest_ies_2 = {
+	"relocationRequest-ies",
+	"relocationRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_relocationRequest_ies_tags_2,
+	sizeof(asn_DEF_relocationRequest_ies_tags_2)
+		/sizeof(asn_DEF_relocationRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_relocationRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_relocationRequest_ies_tags_2)
+		/sizeof(asn_DEF_relocationRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_relocationRequest_ies_constr_2,
+	asn_MBR_relocationRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_relocationRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RelocationRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RelocationRequest, relocationRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_relocationRequest_ies_2,
+		memb_relocationRequest_ies_constraint_1,
+		&asn_PER_memb_relocationRequest_ies_constr_2,
+		0,
+		"relocationRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RelocationRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RelocationRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* relocationRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RelocationRequest_specs_1 = {
+	sizeof(struct RANAP_RelocationRequest),
+	offsetof(struct RANAP_RelocationRequest, _asn_ctx),
+	asn_MAP_RANAP_RelocationRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationRequest = {
+	"RANAP_RelocationRequest",
+	"RANAP_RelocationRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RelocationRequest_tags_1,
+	sizeof(asn_DEF_RANAP_RelocationRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RelocationRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RelocationRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RelocationRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RelocationRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RelocationRequest.h b/src/ranap/RANAP_RelocationRequest.h
new file mode 100644
index 0000000..00b6981
--- /dev/null
+++ b/src/ranap/RANAP_RelocationRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RelocationRequest_H_
+#define	_RANAP_RelocationRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RelocationRequest */
+typedef struct RANAP_RelocationRequest {
+	struct relocationRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} relocationRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RelocationRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RelocationRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RelocationRequestAcknowledge.c b/src/ranap/RANAP_RelocationRequestAcknowledge.c
new file mode 100644
index 0000000..49a70f0
--- /dev/null
+++ b/src/ranap/RANAP_RelocationRequestAcknowledge.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RelocationRequestAcknowledge.h"
+
+static int
+memb_relocationRequestAcknowledge_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_relocationRequestAcknowledge_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_relocationRequestAcknowledge_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_relocationRequestAcknowledge_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_relocationRequestAcknowledge_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_relocationRequestAcknowledge_ies_specs_2 = {
+	sizeof(struct relocationRequestAcknowledge_ies),
+	offsetof(struct relocationRequestAcknowledge_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_relocationRequestAcknowledge_ies_2 = {
+	"relocationRequestAcknowledge-ies",
+	"relocationRequestAcknowledge-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_relocationRequestAcknowledge_ies_tags_2,
+	sizeof(asn_DEF_relocationRequestAcknowledge_ies_tags_2)
+		/sizeof(asn_DEF_relocationRequestAcknowledge_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_relocationRequestAcknowledge_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_relocationRequestAcknowledge_ies_tags_2)
+		/sizeof(asn_DEF_relocationRequestAcknowledge_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_relocationRequestAcknowledge_ies_constr_2,
+	asn_MBR_relocationRequestAcknowledge_ies_2,
+	1,	/* Single element */
+	&asn_SPC_relocationRequestAcknowledge_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RelocationRequestAcknowledge_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RelocationRequestAcknowledge, relocationRequestAcknowledge_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_relocationRequestAcknowledge_ies_2,
+		memb_relocationRequestAcknowledge_ies_constraint_1,
+		&asn_PER_memb_relocationRequestAcknowledge_ies_constr_2,
+		0,
+		"relocationRequestAcknowledge-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RelocationRequestAcknowledge_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RelocationRequestAcknowledge_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* relocationRequestAcknowledge-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RelocationRequestAcknowledge_specs_1 = {
+	sizeof(struct RANAP_RelocationRequestAcknowledge),
+	offsetof(struct RANAP_RelocationRequestAcknowledge, _asn_ctx),
+	asn_MAP_RANAP_RelocationRequestAcknowledge_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationRequestAcknowledge = {
+	"RANAP_RelocationRequestAcknowledge",
+	"RANAP_RelocationRequestAcknowledge",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RelocationRequestAcknowledge_tags_1,
+	sizeof(asn_DEF_RANAP_RelocationRequestAcknowledge_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationRequestAcknowledge_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RelocationRequestAcknowledge_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RelocationRequestAcknowledge_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationRequestAcknowledge_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RelocationRequestAcknowledge_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RelocationRequestAcknowledge_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RelocationRequestAcknowledge.h b/src/ranap/RANAP_RelocationRequestAcknowledge.h
new file mode 100644
index 0000000..4044052
--- /dev/null
+++ b/src/ranap/RANAP_RelocationRequestAcknowledge.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RelocationRequestAcknowledge_H_
+#define	_RANAP_RelocationRequestAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RelocationRequestAcknowledge */
+typedef struct RANAP_RelocationRequestAcknowledge {
+	struct relocationRequestAcknowledge_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} relocationRequestAcknowledge_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RelocationRequestAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationRequestAcknowledge;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RelocationRequestAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RelocationRequired.c b/src/ranap/RANAP_RelocationRequired.c
new file mode 100644
index 0000000..8c81751
--- /dev/null
+++ b/src/ranap/RANAP_RelocationRequired.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_RelocationRequired.h"
+
+static int
+memb_relocationRequired_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_relocationRequired_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_relocationRequired_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_relocationRequired_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_relocationRequired_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_relocationRequired_ies_specs_2 = {
+	sizeof(struct relocationRequired_ies),
+	offsetof(struct relocationRequired_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_relocationRequired_ies_2 = {
+	"relocationRequired-ies",
+	"relocationRequired-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_relocationRequired_ies_tags_2,
+	sizeof(asn_DEF_relocationRequired_ies_tags_2)
+		/sizeof(asn_DEF_relocationRequired_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_relocationRequired_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_relocationRequired_ies_tags_2)
+		/sizeof(asn_DEF_relocationRequired_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_relocationRequired_ies_constr_2,
+	asn_MBR_relocationRequired_ies_2,
+	1,	/* Single element */
+	&asn_SPC_relocationRequired_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_RelocationRequired_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RelocationRequired, relocationRequired_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_relocationRequired_ies_2,
+		memb_relocationRequired_ies_constraint_1,
+		&asn_PER_memb_relocationRequired_ies_constr_2,
+		0,
+		"relocationRequired-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RelocationRequired_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RelocationRequired_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* relocationRequired-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RelocationRequired_specs_1 = {
+	sizeof(struct RANAP_RelocationRequired),
+	offsetof(struct RANAP_RelocationRequired, _asn_ctx),
+	asn_MAP_RANAP_RelocationRequired_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationRequired = {
+	"RANAP_RelocationRequired",
+	"RANAP_RelocationRequired",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RelocationRequired_tags_1,
+	sizeof(asn_DEF_RANAP_RelocationRequired_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationRequired_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RelocationRequired_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RelocationRequired_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationRequired_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RelocationRequired_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_RelocationRequired_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RelocationRequired.h b/src/ranap/RANAP_RelocationRequired.h
new file mode 100644
index 0000000..2c8fce0
--- /dev/null
+++ b/src/ranap/RANAP_RelocationRequired.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_RelocationRequired_H_
+#define	_RANAP_RelocationRequired_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RelocationRequired */
+typedef struct RANAP_RelocationRequired {
+	struct relocationRequired_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} relocationRequired_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RelocationRequired_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationRequired;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RelocationRequired_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RelocationRequirement.c b/src/ranap/RANAP_RelocationRequirement.c
new file mode 100644
index 0000000..9d7b424
--- /dev/null
+++ b/src/ranap/RANAP_RelocationRequirement.c
@@ -0,0 +1,169 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RelocationRequirement.h"
+
+int
+RANAP_RelocationRequirement_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RelocationRequirement_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_RelocationRequirement_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RelocationRequirement_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RelocationRequirement_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RelocationRequirement_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RelocationRequirement_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RelocationRequirement_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RelocationRequirement_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RelocationRequirement_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RelocationRequirement_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RelocationRequirement_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RelocationRequirement_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RelocationRequirement_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RelocationRequirement_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RelocationRequirement_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RelocationRequirement_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RelocationRequirement_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RelocationRequirement_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RelocationRequirement_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RelocationRequirement_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RelocationRequirement_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RelocationRequirement_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_RelocationRequirement_value2enum_1[] = {
+	{ 0,	8,	"lossless" },
+	{ 1,	4,	"none" },
+	{ 2,	8,	"realtime" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_RelocationRequirement_enum2value_1[] = {
+	0,	/* lossless(0) */
+	1,	/* none(1) */
+	2	/* realtime(2) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_RelocationRequirement_specs_1 = {
+	asn_MAP_RANAP_RelocationRequirement_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_RelocationRequirement_enum2value_1,	/* N => "tag"; sorted by N */
+	3,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RelocationRequirement_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationRequirement = {
+	"RANAP_RelocationRequirement",
+	"RANAP_RelocationRequirement",
+	RANAP_RelocationRequirement_free,
+	RANAP_RelocationRequirement_print,
+	RANAP_RelocationRequirement_constraint,
+	RANAP_RelocationRequirement_decode_ber,
+	RANAP_RelocationRequirement_encode_der,
+	RANAP_RelocationRequirement_decode_xer,
+	RANAP_RelocationRequirement_encode_xer,
+	RANAP_RelocationRequirement_decode_uper,
+	RANAP_RelocationRequirement_encode_uper,
+	RANAP_RelocationRequirement_decode_aper,
+	RANAP_RelocationRequirement_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RelocationRequirement_tags_1,
+	sizeof(asn_DEF_RANAP_RelocationRequirement_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationRequirement_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RelocationRequirement_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RelocationRequirement_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationRequirement_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RelocationRequirement_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_RelocationRequirement_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RelocationRequirement.h b/src/ranap/RANAP_RelocationRequirement.h
new file mode 100644
index 0000000..56623ed
--- /dev/null
+++ b/src/ranap/RANAP_RelocationRequirement.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RelocationRequirement_H_
+#define	_RANAP_RelocationRequirement_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_RelocationRequirement {
+	RANAP_RelocationRequirement_lossless	= 0,
+	RANAP_RelocationRequirement_none	= 1,
+	/*
+	 * Enumeration is extensible
+	 */
+	RANAP_RelocationRequirement_realtime	= 2
+} e_RANAP_RelocationRequirement;
+
+/* RANAP_RelocationRequirement */
+typedef long	 RANAP_RelocationRequirement_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationRequirement;
+asn_struct_free_f RANAP_RelocationRequirement_free;
+asn_struct_print_f RANAP_RelocationRequirement_print;
+asn_constr_check_f RANAP_RelocationRequirement_constraint;
+ber_type_decoder_f RANAP_RelocationRequirement_decode_ber;
+der_type_encoder_f RANAP_RelocationRequirement_encode_der;
+xer_type_decoder_f RANAP_RelocationRequirement_decode_xer;
+xer_type_encoder_f RANAP_RelocationRequirement_encode_xer;
+per_type_decoder_f RANAP_RelocationRequirement_decode_uper;
+per_type_encoder_f RANAP_RelocationRequirement_encode_uper;
+per_type_decoder_f RANAP_RelocationRequirement_decode_aper;
+per_type_encoder_f RANAP_RelocationRequirement_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RelocationRequirement_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RelocationType.c b/src/ranap/RANAP_RelocationType.c
new file mode 100644
index 0000000..45ede47
--- /dev/null
+++ b/src/ranap/RANAP_RelocationType.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RelocationType.h"
+
+int
+RANAP_RelocationType_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RelocationType_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_RelocationType_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RelocationType_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RelocationType_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RelocationType_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RelocationType_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RelocationType_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RelocationType_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RelocationType_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RelocationType_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RelocationType_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RelocationType_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RelocationType_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RelocationType_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RelocationType_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RelocationType_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RelocationType_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RelocationType_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RelocationType_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RelocationType_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RelocationType_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RelocationType_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_RelocationType_value2enum_1[] = {
+	{ 0,	15,	"ue-not-involved" },
+	{ 1,	11,	"ue-involved" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_RelocationType_enum2value_1[] = {
+	1,	/* ue-involved(1) */
+	0	/* ue-not-involved(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_RelocationType_specs_1 = {
+	asn_MAP_RANAP_RelocationType_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_RelocationType_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RelocationType_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationType = {
+	"RANAP_RelocationType",
+	"RANAP_RelocationType",
+	RANAP_RelocationType_free,
+	RANAP_RelocationType_print,
+	RANAP_RelocationType_constraint,
+	RANAP_RelocationType_decode_ber,
+	RANAP_RelocationType_encode_der,
+	RANAP_RelocationType_decode_xer,
+	RANAP_RelocationType_encode_xer,
+	RANAP_RelocationType_decode_uper,
+	RANAP_RelocationType_encode_uper,
+	RANAP_RelocationType_decode_aper,
+	RANAP_RelocationType_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RelocationType_tags_1,
+	sizeof(asn_DEF_RANAP_RelocationType_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationType_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RelocationType_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RelocationType_tags_1)
+		/sizeof(asn_DEF_RANAP_RelocationType_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RelocationType_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_RelocationType_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RelocationType.h b/src/ranap/RANAP_RelocationType.h
new file mode 100644
index 0000000..4ad5f58
--- /dev/null
+++ b/src/ranap/RANAP_RelocationType.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RelocationType_H_
+#define	_RANAP_RelocationType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_RelocationType {
+	RANAP_RelocationType_ue_not_involved	= 0,
+	RANAP_RelocationType_ue_involved	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_RelocationType;
+
+/* RANAP_RelocationType */
+typedef long	 RANAP_RelocationType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RelocationType;
+asn_struct_free_f RANAP_RelocationType_free;
+asn_struct_print_f RANAP_RelocationType_print;
+asn_constr_check_f RANAP_RelocationType_constraint;
+ber_type_decoder_f RANAP_RelocationType_decode_ber;
+der_type_encoder_f RANAP_RelocationType_encode_der;
+xer_type_decoder_f RANAP_RelocationType_decode_xer;
+xer_type_encoder_f RANAP_RelocationType_encode_xer;
+per_type_decoder_f RANAP_RelocationType_decode_uper;
+per_type_encoder_f RANAP_RelocationType_encode_uper;
+per_type_decoder_f RANAP_RelocationType_decode_aper;
+per_type_encoder_f RANAP_RelocationType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RelocationType_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RepetitionNumber0.c b/src/ranap/RANAP_RepetitionNumber0.c
new file mode 100644
index 0000000..53f7e9f
--- /dev/null
+++ b/src/ranap/RANAP_RepetitionNumber0.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RepetitionNumber0.h"
+
+int
+RANAP_RepetitionNumber0_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 255l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RepetitionNumber0_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_RepetitionNumber0_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RepetitionNumber0_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RepetitionNumber0_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RepetitionNumber0_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RepetitionNumber0_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RepetitionNumber0_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RepetitionNumber0_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RepetitionNumber0_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RepetitionNumber0_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RepetitionNumber0_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RepetitionNumber0_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RepetitionNumber0_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RepetitionNumber0_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RepetitionNumber0_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RepetitionNumber0_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RepetitionNumber0_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RepetitionNumber0_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RepetitionNumber0_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RepetitionNumber0_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RepetitionNumber0_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RepetitionNumber0_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  0l,  255l }	/* (0..255) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RepetitionNumber0_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RepetitionNumber0 = {
+	"RANAP_RepetitionNumber0",
+	"RANAP_RepetitionNumber0",
+	RANAP_RepetitionNumber0_free,
+	RANAP_RepetitionNumber0_print,
+	RANAP_RepetitionNumber0_constraint,
+	RANAP_RepetitionNumber0_decode_ber,
+	RANAP_RepetitionNumber0_encode_der,
+	RANAP_RepetitionNumber0_decode_xer,
+	RANAP_RepetitionNumber0_encode_xer,
+	RANAP_RepetitionNumber0_decode_uper,
+	RANAP_RepetitionNumber0_encode_uper,
+	RANAP_RepetitionNumber0_decode_aper,
+	RANAP_RepetitionNumber0_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RepetitionNumber0_tags_1,
+	sizeof(asn_DEF_RANAP_RepetitionNumber0_tags_1)
+		/sizeof(asn_DEF_RANAP_RepetitionNumber0_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RepetitionNumber0_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RepetitionNumber0_tags_1)
+		/sizeof(asn_DEF_RANAP_RepetitionNumber0_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RepetitionNumber0_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_RepetitionNumber0.h b/src/ranap/RANAP_RepetitionNumber0.h
new file mode 100644
index 0000000..41e8950
--- /dev/null
+++ b/src/ranap/RANAP_RepetitionNumber0.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RepetitionNumber0_H_
+#define	_RANAP_RepetitionNumber0_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RepetitionNumber0 */
+typedef long	 RANAP_RepetitionNumber0_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RepetitionNumber0;
+asn_struct_free_f RANAP_RepetitionNumber0_free;
+asn_struct_print_f RANAP_RepetitionNumber0_print;
+asn_constr_check_f RANAP_RepetitionNumber0_constraint;
+ber_type_decoder_f RANAP_RepetitionNumber0_decode_ber;
+der_type_encoder_f RANAP_RepetitionNumber0_encode_der;
+xer_type_decoder_f RANAP_RepetitionNumber0_decode_xer;
+xer_type_encoder_f RANAP_RepetitionNumber0_encode_xer;
+per_type_decoder_f RANAP_RepetitionNumber0_decode_uper;
+per_type_encoder_f RANAP_RepetitionNumber0_encode_uper;
+per_type_decoder_f RANAP_RepetitionNumber0_decode_aper;
+per_type_encoder_f RANAP_RepetitionNumber0_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RepetitionNumber0_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RepetitionNumber1.c b/src/ranap/RANAP_RepetitionNumber1.c
new file mode 100644
index 0000000..b4f2630
--- /dev/null
+++ b/src/ranap/RANAP_RepetitionNumber1.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RepetitionNumber1.h"
+
+int
+RANAP_RepetitionNumber1_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 256l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RepetitionNumber1_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_RepetitionNumber1_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RepetitionNumber1_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RepetitionNumber1_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RepetitionNumber1_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RepetitionNumber1_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RepetitionNumber1_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RepetitionNumber1_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RepetitionNumber1_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RepetitionNumber1_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RepetitionNumber1_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RepetitionNumber1_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RepetitionNumber1_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RepetitionNumber1_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RepetitionNumber1_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RepetitionNumber1_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RepetitionNumber1_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RepetitionNumber1_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RepetitionNumber1_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RepetitionNumber1_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RepetitionNumber1_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RepetitionNumber1_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  1l,  256l }	/* (1..256) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RepetitionNumber1_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RepetitionNumber1 = {
+	"RANAP_RepetitionNumber1",
+	"RANAP_RepetitionNumber1",
+	RANAP_RepetitionNumber1_free,
+	RANAP_RepetitionNumber1_print,
+	RANAP_RepetitionNumber1_constraint,
+	RANAP_RepetitionNumber1_decode_ber,
+	RANAP_RepetitionNumber1_encode_der,
+	RANAP_RepetitionNumber1_decode_xer,
+	RANAP_RepetitionNumber1_encode_xer,
+	RANAP_RepetitionNumber1_decode_uper,
+	RANAP_RepetitionNumber1_encode_uper,
+	RANAP_RepetitionNumber1_decode_aper,
+	RANAP_RepetitionNumber1_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RepetitionNumber1_tags_1,
+	sizeof(asn_DEF_RANAP_RepetitionNumber1_tags_1)
+		/sizeof(asn_DEF_RANAP_RepetitionNumber1_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RepetitionNumber1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RepetitionNumber1_tags_1)
+		/sizeof(asn_DEF_RANAP_RepetitionNumber1_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RepetitionNumber1_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_RepetitionNumber1.h b/src/ranap/RANAP_RepetitionNumber1.h
new file mode 100644
index 0000000..b151d87
--- /dev/null
+++ b/src/ranap/RANAP_RepetitionNumber1.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RepetitionNumber1_H_
+#define	_RANAP_RepetitionNumber1_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RepetitionNumber1 */
+typedef long	 RANAP_RepetitionNumber1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RepetitionNumber1;
+asn_struct_free_f RANAP_RepetitionNumber1_free;
+asn_struct_print_f RANAP_RepetitionNumber1_print;
+asn_constr_check_f RANAP_RepetitionNumber1_constraint;
+ber_type_decoder_f RANAP_RepetitionNumber1_decode_ber;
+der_type_encoder_f RANAP_RepetitionNumber1_encode_der;
+xer_type_decoder_f RANAP_RepetitionNumber1_decode_xer;
+xer_type_encoder_f RANAP_RepetitionNumber1_encode_xer;
+per_type_decoder_f RANAP_RepetitionNumber1_decode_uper;
+per_type_encoder_f RANAP_RepetitionNumber1_encode_uper;
+per_type_decoder_f RANAP_RepetitionNumber1_decode_aper;
+per_type_encoder_f RANAP_RepetitionNumber1_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RepetitionNumber1_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ReportAmount.c b/src/ranap/RANAP_ReportAmount.c
new file mode 100644
index 0000000..1e2a190
--- /dev/null
+++ b/src/ranap/RANAP_ReportAmount.c
@@ -0,0 +1,179 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ReportAmount.h"
+
+int
+RANAP_ReportAmount_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ReportAmount_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_ReportAmount_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ReportAmount_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ReportAmount_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ReportAmount_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ReportAmount_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ReportAmount_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ReportAmount_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ReportAmount_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ReportAmount_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ReportAmount_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ReportAmount_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ReportAmount_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ReportAmount_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ReportAmount_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ReportAmount_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ReportAmount_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ReportAmount_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ReportAmount_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ReportAmount_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ReportAmount_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_ReportAmount_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0l,  7l }	/* (0..7,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_ReportAmount_value2enum_1[] = {
+	{ 0,	2,	"n1" },
+	{ 1,	2,	"n2" },
+	{ 2,	2,	"n4" },
+	{ 3,	2,	"n8" },
+	{ 4,	3,	"n16" },
+	{ 5,	3,	"n32" },
+	{ 6,	3,	"n64" },
+	{ 7,	8,	"infinity" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_ReportAmount_enum2value_1[] = {
+	7,	/* infinity(7) */
+	0,	/* n1(0) */
+	4,	/* n16(4) */
+	1,	/* n2(1) */
+	5,	/* n32(5) */
+	2,	/* n4(2) */
+	6,	/* n64(6) */
+	3	/* n8(3) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_ReportAmount_specs_1 = {
+	asn_MAP_RANAP_ReportAmount_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_ReportAmount_enum2value_1,	/* N => "tag"; sorted by N */
+	8,	/* Number of elements in the maps */
+	9,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ReportAmount_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ReportAmount = {
+	"RANAP_ReportAmount",
+	"RANAP_ReportAmount",
+	RANAP_ReportAmount_free,
+	RANAP_ReportAmount_print,
+	RANAP_ReportAmount_constraint,
+	RANAP_ReportAmount_decode_ber,
+	RANAP_ReportAmount_encode_der,
+	RANAP_ReportAmount_decode_xer,
+	RANAP_ReportAmount_encode_xer,
+	RANAP_ReportAmount_decode_uper,
+	RANAP_ReportAmount_encode_uper,
+	RANAP_ReportAmount_decode_aper,
+	RANAP_ReportAmount_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ReportAmount_tags_1,
+	sizeof(asn_DEF_RANAP_ReportAmount_tags_1)
+		/sizeof(asn_DEF_RANAP_ReportAmount_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ReportAmount_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ReportAmount_tags_1)
+		/sizeof(asn_DEF_RANAP_ReportAmount_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_ReportAmount_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_ReportAmount_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ReportAmount.h b/src/ranap/RANAP_ReportAmount.h
new file mode 100644
index 0000000..daf8dd6
--- /dev/null
+++ b/src/ranap/RANAP_ReportAmount.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ReportAmount_H_
+#define	_RANAP_ReportAmount_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_ReportAmount {
+	RANAP_ReportAmount_n1	= 0,
+	RANAP_ReportAmount_n2	= 1,
+	RANAP_ReportAmount_n4	= 2,
+	RANAP_ReportAmount_n8	= 3,
+	RANAP_ReportAmount_n16	= 4,
+	RANAP_ReportAmount_n32	= 5,
+	RANAP_ReportAmount_n64	= 6,
+	RANAP_ReportAmount_infinity	= 7
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_ReportAmount;
+
+/* RANAP_ReportAmount */
+typedef long	 RANAP_ReportAmount_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ReportAmount;
+asn_struct_free_f RANAP_ReportAmount_free;
+asn_struct_print_f RANAP_ReportAmount_print;
+asn_constr_check_f RANAP_ReportAmount_constraint;
+ber_type_decoder_f RANAP_ReportAmount_decode_ber;
+der_type_encoder_f RANAP_ReportAmount_encode_der;
+xer_type_decoder_f RANAP_ReportAmount_decode_xer;
+xer_type_encoder_f RANAP_ReportAmount_encode_xer;
+per_type_decoder_f RANAP_ReportAmount_decode_uper;
+per_type_encoder_f RANAP_ReportAmount_encode_uper;
+per_type_decoder_f RANAP_ReportAmount_decode_aper;
+per_type_encoder_f RANAP_ReportAmount_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ReportAmount_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ReportArea.c b/src/ranap/RANAP_ReportArea.c
new file mode 100644
index 0000000..240a572
--- /dev/null
+++ b/src/ranap/RANAP_ReportArea.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ReportArea.h"
+
+int
+RANAP_ReportArea_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ReportArea_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_ReportArea_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ReportArea_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ReportArea_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ReportArea_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ReportArea_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ReportArea_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ReportArea_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ReportArea_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ReportArea_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ReportArea_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ReportArea_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ReportArea_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ReportArea_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ReportArea_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ReportArea_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ReportArea_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ReportArea_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ReportArea_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ReportArea_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ReportArea_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_ReportArea_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_ReportArea_value2enum_1[] = {
+	{ 0,	12,	"service-area" },
+	{ 1,	17,	"geographical-area" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_ReportArea_enum2value_1[] = {
+	1,	/* geographical-area(1) */
+	0	/* service-area(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_ReportArea_specs_1 = {
+	asn_MAP_RANAP_ReportArea_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_ReportArea_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ReportArea_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ReportArea = {
+	"RANAP_ReportArea",
+	"RANAP_ReportArea",
+	RANAP_ReportArea_free,
+	RANAP_ReportArea_print,
+	RANAP_ReportArea_constraint,
+	RANAP_ReportArea_decode_ber,
+	RANAP_ReportArea_encode_der,
+	RANAP_ReportArea_decode_xer,
+	RANAP_ReportArea_encode_xer,
+	RANAP_ReportArea_decode_uper,
+	RANAP_ReportArea_encode_uper,
+	RANAP_ReportArea_decode_aper,
+	RANAP_ReportArea_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ReportArea_tags_1,
+	sizeof(asn_DEF_RANAP_ReportArea_tags_1)
+		/sizeof(asn_DEF_RANAP_ReportArea_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ReportArea_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ReportArea_tags_1)
+		/sizeof(asn_DEF_RANAP_ReportArea_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_ReportArea_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_ReportArea_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ReportArea.h b/src/ranap/RANAP_ReportArea.h
new file mode 100644
index 0000000..e5ea1c8
--- /dev/null
+++ b/src/ranap/RANAP_ReportArea.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ReportArea_H_
+#define	_RANAP_ReportArea_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_ReportArea {
+	RANAP_ReportArea_service_area	= 0,
+	RANAP_ReportArea_geographical_area	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_ReportArea;
+
+/* RANAP_ReportArea */
+typedef long	 RANAP_ReportArea_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ReportArea;
+asn_struct_free_f RANAP_ReportArea_free;
+asn_struct_print_f RANAP_ReportArea_print;
+asn_constr_check_f RANAP_ReportArea_constraint;
+ber_type_decoder_f RANAP_ReportArea_decode_ber;
+der_type_encoder_f RANAP_ReportArea_encode_der;
+xer_type_decoder_f RANAP_ReportArea_decode_xer;
+xer_type_encoder_f RANAP_ReportArea_encode_xer;
+per_type_decoder_f RANAP_ReportArea_decode_uper;
+per_type_encoder_f RANAP_ReportArea_encode_uper;
+per_type_decoder_f RANAP_ReportArea_decode_aper;
+per_type_encoder_f RANAP_ReportArea_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ReportArea_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ReportChangeOfSAI.c b/src/ranap/RANAP_ReportChangeOfSAI.c
new file mode 100644
index 0000000..ec74c5c
--- /dev/null
+++ b/src/ranap/RANAP_ReportChangeOfSAI.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ReportChangeOfSAI.h"
+
+int
+RANAP_ReportChangeOfSAI_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ReportChangeOfSAI_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_ReportChangeOfSAI_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ReportChangeOfSAI_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ReportChangeOfSAI_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ReportChangeOfSAI_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ReportChangeOfSAI_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ReportChangeOfSAI_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ReportChangeOfSAI_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ReportChangeOfSAI_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ReportChangeOfSAI_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ReportChangeOfSAI_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ReportChangeOfSAI_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ReportChangeOfSAI_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ReportChangeOfSAI_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ReportChangeOfSAI_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ReportChangeOfSAI_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ReportChangeOfSAI_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ReportChangeOfSAI_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ReportChangeOfSAI_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ReportChangeOfSAI_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ReportChangeOfSAI_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_ReportChangeOfSAI_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_ReportChangeOfSAI_value2enum_1[] = {
+	{ 0,	9,	"requested" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_ReportChangeOfSAI_enum2value_1[] = {
+	0	/* requested(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_ReportChangeOfSAI_specs_1 = {
+	asn_MAP_RANAP_ReportChangeOfSAI_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_ReportChangeOfSAI_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ReportChangeOfSAI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ReportChangeOfSAI = {
+	"RANAP_ReportChangeOfSAI",
+	"RANAP_ReportChangeOfSAI",
+	RANAP_ReportChangeOfSAI_free,
+	RANAP_ReportChangeOfSAI_print,
+	RANAP_ReportChangeOfSAI_constraint,
+	RANAP_ReportChangeOfSAI_decode_ber,
+	RANAP_ReportChangeOfSAI_encode_der,
+	RANAP_ReportChangeOfSAI_decode_xer,
+	RANAP_ReportChangeOfSAI_encode_xer,
+	RANAP_ReportChangeOfSAI_decode_uper,
+	RANAP_ReportChangeOfSAI_encode_uper,
+	RANAP_ReportChangeOfSAI_decode_aper,
+	RANAP_ReportChangeOfSAI_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ReportChangeOfSAI_tags_1,
+	sizeof(asn_DEF_RANAP_ReportChangeOfSAI_tags_1)
+		/sizeof(asn_DEF_RANAP_ReportChangeOfSAI_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ReportChangeOfSAI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ReportChangeOfSAI_tags_1)
+		/sizeof(asn_DEF_RANAP_ReportChangeOfSAI_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_ReportChangeOfSAI_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_ReportChangeOfSAI_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ReportChangeOfSAI.h b/src/ranap/RANAP_ReportChangeOfSAI.h
new file mode 100644
index 0000000..b6e0a05
--- /dev/null
+++ b/src/ranap/RANAP_ReportChangeOfSAI.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ReportChangeOfSAI_H_
+#define	_RANAP_ReportChangeOfSAI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_ReportChangeOfSAI {
+	RANAP_ReportChangeOfSAI_requested	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_ReportChangeOfSAI;
+
+/* RANAP_ReportChangeOfSAI */
+typedef long	 RANAP_ReportChangeOfSAI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ReportChangeOfSAI;
+asn_struct_free_f RANAP_ReportChangeOfSAI_free;
+asn_struct_print_f RANAP_ReportChangeOfSAI_print;
+asn_constr_check_f RANAP_ReportChangeOfSAI_constraint;
+ber_type_decoder_f RANAP_ReportChangeOfSAI_decode_ber;
+der_type_encoder_f RANAP_ReportChangeOfSAI_encode_der;
+xer_type_decoder_f RANAP_ReportChangeOfSAI_decode_xer;
+xer_type_encoder_f RANAP_ReportChangeOfSAI_encode_xer;
+per_type_decoder_f RANAP_ReportChangeOfSAI_decode_uper;
+per_type_encoder_f RANAP_ReportChangeOfSAI_encode_uper;
+per_type_decoder_f RANAP_ReportChangeOfSAI_decode_aper;
+per_type_encoder_f RANAP_ReportChangeOfSAI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ReportChangeOfSAI_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ReportInterval.c b/src/ranap/RANAP_ReportInterval.c
new file mode 100644
index 0000000..58dd609
--- /dev/null
+++ b/src/ranap/RANAP_ReportInterval.c
@@ -0,0 +1,193 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ReportInterval.h"
+
+int
+RANAP_ReportInterval_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ReportInterval_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_ReportInterval_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ReportInterval_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ReportInterval_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ReportInterval_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ReportInterval_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ReportInterval_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ReportInterval_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ReportInterval_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ReportInterval_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ReportInterval_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ReportInterval_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ReportInterval_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ReportInterval_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ReportInterval_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ReportInterval_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ReportInterval_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ReportInterval_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ReportInterval_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ReportInterval_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ReportInterval_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_ReportInterval_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0l,  12l }	/* (0..12,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_ReportInterval_value2enum_1[] = {
+	{ 0,	5,	"ms250" },
+	{ 1,	5,	"ms500" },
+	{ 2,	6,	"ms1000" },
+	{ 3,	6,	"ms2000" },
+	{ 4,	6,	"ms3000" },
+	{ 5,	6,	"ms4000" },
+	{ 6,	6,	"ms6000" },
+	{ 7,	7,	"ms12000" },
+	{ 8,	7,	"ms16000" },
+	{ 9,	7,	"ms20000" },
+	{ 10,	7,	"ms24000" },
+	{ 11,	7,	"ms32000" },
+	{ 12,	7,	"ms64000" },
+	{ 13,	6,	"ms8000" },
+	{ 14,	7,	"ms28000" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_ReportInterval_enum2value_1[] = {
+	2,	/* ms1000(2) */
+	7,	/* ms12000(7) */
+	8,	/* ms16000(8) */
+	3,	/* ms2000(3) */
+	9,	/* ms20000(9) */
+	10,	/* ms24000(10) */
+	0,	/* ms250(0) */
+	14,	/* ms28000(14) */
+	4,	/* ms3000(4) */
+	11,	/* ms32000(11) */
+	5,	/* ms4000(5) */
+	1,	/* ms500(1) */
+	6,	/* ms6000(6) */
+	12,	/* ms64000(12) */
+	13	/* ms8000(13) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_ReportInterval_specs_1 = {
+	asn_MAP_RANAP_ReportInterval_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_ReportInterval_enum2value_1,	/* N => "tag"; sorted by N */
+	15,	/* Number of elements in the maps */
+	14,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ReportInterval_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ReportInterval = {
+	"RANAP_ReportInterval",
+	"RANAP_ReportInterval",
+	RANAP_ReportInterval_free,
+	RANAP_ReportInterval_print,
+	RANAP_ReportInterval_constraint,
+	RANAP_ReportInterval_decode_ber,
+	RANAP_ReportInterval_encode_der,
+	RANAP_ReportInterval_decode_xer,
+	RANAP_ReportInterval_encode_xer,
+	RANAP_ReportInterval_decode_uper,
+	RANAP_ReportInterval_encode_uper,
+	RANAP_ReportInterval_decode_aper,
+	RANAP_ReportInterval_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ReportInterval_tags_1,
+	sizeof(asn_DEF_RANAP_ReportInterval_tags_1)
+		/sizeof(asn_DEF_RANAP_ReportInterval_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ReportInterval_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ReportInterval_tags_1)
+		/sizeof(asn_DEF_RANAP_ReportInterval_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_ReportInterval_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_ReportInterval_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ReportInterval.h b/src/ranap/RANAP_ReportInterval.h
new file mode 100644
index 0000000..6efdb1a
--- /dev/null
+++ b/src/ranap/RANAP_ReportInterval.h
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ReportInterval_H_
+#define	_RANAP_ReportInterval_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_ReportInterval {
+	RANAP_ReportInterval_ms250	= 0,
+	RANAP_ReportInterval_ms500	= 1,
+	RANAP_ReportInterval_ms1000	= 2,
+	RANAP_ReportInterval_ms2000	= 3,
+	RANAP_ReportInterval_ms3000	= 4,
+	RANAP_ReportInterval_ms4000	= 5,
+	RANAP_ReportInterval_ms6000	= 6,
+	RANAP_ReportInterval_ms12000	= 7,
+	RANAP_ReportInterval_ms16000	= 8,
+	RANAP_ReportInterval_ms20000	= 9,
+	RANAP_ReportInterval_ms24000	= 10,
+	RANAP_ReportInterval_ms32000	= 11,
+	RANAP_ReportInterval_ms64000	= 12,
+	/*
+	 * Enumeration is extensible
+	 */
+	RANAP_ReportInterval_ms8000	= 13,
+	RANAP_ReportInterval_ms28000	= 14
+} e_RANAP_ReportInterval;
+
+/* RANAP_ReportInterval */
+typedef long	 RANAP_ReportInterval_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ReportInterval;
+asn_struct_free_f RANAP_ReportInterval_free;
+asn_struct_print_f RANAP_ReportInterval_print;
+asn_constr_check_f RANAP_ReportInterval_constraint;
+ber_type_decoder_f RANAP_ReportInterval_decode_ber;
+der_type_encoder_f RANAP_ReportInterval_encode_der;
+xer_type_decoder_f RANAP_ReportInterval_decode_xer;
+xer_type_encoder_f RANAP_ReportInterval_encode_xer;
+per_type_decoder_f RANAP_ReportInterval_decode_uper;
+per_type_encoder_f RANAP_ReportInterval_encode_uper;
+per_type_decoder_f RANAP_ReportInterval_decode_aper;
+per_type_encoder_f RANAP_ReportInterval_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ReportInterval_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RequestType.c b/src/ranap/RANAP_RequestType.c
new file mode 100644
index 0000000..c00dcba
--- /dev/null
+++ b/src/ranap/RANAP_RequestType.c
@@ -0,0 +1,113 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RequestType.h"
+
+static int
+memb_accuracyCode_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 127l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_accuracyCode_constr_4 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  0l,  127l }	/* (0..127) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_RequestType_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RequestType, event),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Event,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"event"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RequestType, reportArea),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ReportArea,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"reportArea"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_RequestType, accuracyCode),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_accuracyCode_constraint_1,
+		&asn_PER_memb_accuracyCode_constr_4,
+		0,
+		"accuracyCode"
+		},
+};
+static const int asn_MAP_RANAP_RequestType_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_RequestType_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RequestType_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* event */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportArea */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* accuracyCode */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RequestType_specs_1 = {
+	sizeof(struct RANAP_RequestType),
+	offsetof(struct RANAP_RequestType, _asn_ctx),
+	asn_MAP_RANAP_RequestType_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_RequestType_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RequestType = {
+	"RANAP_RequestType",
+	"RANAP_RequestType",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RequestType_tags_1,
+	sizeof(asn_DEF_RANAP_RequestType_tags_1)
+		/sizeof(asn_DEF_RANAP_RequestType_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RequestType_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RequestType_tags_1)
+		/sizeof(asn_DEF_RANAP_RequestType_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RequestType_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_RequestType_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RequestType.h b/src/ranap/RANAP_RequestType.h
new file mode 100644
index 0000000..67ed455
--- /dev/null
+++ b/src/ranap/RANAP_RequestType.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RequestType_H_
+#define	_RANAP_RequestType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Event.h"
+#include "RANAP_ReportArea.h"
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RequestType */
+typedef struct RANAP_RequestType {
+	RANAP_Event_t	 event;
+	RANAP_ReportArea_t	 reportArea;
+	long	*accuracyCode	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RequestType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RequestType;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RequestType_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.c b/src/ranap/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.c
new file mode 100644
index 0000000..259ef71
--- /dev/null
+++ b/src/ranap/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_ExtendedGuaranteedBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_specs_1 = {
+	sizeof(struct RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList),
+	offsetof(struct RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList = {
+	"RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList",
+	"RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_constr_1,
+	asn_MBR_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.h b/src/ranap/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.h
new file mode 100644
index 0000000..e856b16
--- /dev/null
+++ b/src/ranap/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_H_
+#define	_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ExtendedGuaranteedBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList */
+typedef struct RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList {
+	A_SEQUENCE_OF(RANAP_ExtendedGuaranteedBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.c b/src/ranap/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.c
new file mode 100644
index 0000000..263bc3a
--- /dev/null
+++ b/src/ranap/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_ExtendedMaxBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_specs_1 = {
+	sizeof(struct RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList),
+	offsetof(struct RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList = {
+	"RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList",
+	"RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_constr_1,
+	asn_MBR_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.h b/src/ranap/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.h
new file mode 100644
index 0000000..33dc3ee
--- /dev/null
+++ b/src/ranap/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_H_
+#define	_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ExtendedMaxBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList */
+typedef struct RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList {
+	A_SEQUENCE_OF(RANAP_ExtendedMaxBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Requested_RAB_Parameter_ExtendedMaxBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.c b/src/ranap/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.c
new file mode 100644
index 0000000..35fa89d
--- /dev/null
+++ b/src/ranap/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_GuaranteedBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_specs_1 = {
+	sizeof(struct RANAP_Requested_RAB_Parameter_GuaranteedBitrateList),
+	offsetof(struct RANAP_Requested_RAB_Parameter_GuaranteedBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList = {
+	"RANAP_Requested-RAB-Parameter-GuaranteedBitrateList",
+	"RANAP_Requested-RAB-Parameter-GuaranteedBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_constr_1,
+	asn_MBR_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.h b/src/ranap/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.h
new file mode 100644
index 0000000..cfe9076
--- /dev/null
+++ b/src/ranap/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_H_
+#define	_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_GuaranteedBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Requested-RAB-Parameter-GuaranteedBitrateList */
+typedef struct RANAP_Requested_RAB_Parameter_GuaranteedBitrateList {
+	A_SEQUENCE_OF(RANAP_GuaranteedBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Requested-RAB-Parameter-MaxBitrateList.c b/src/ranap/RANAP_Requested-RAB-Parameter-MaxBitrateList.c
new file mode 100644
index 0000000..d846ed0
--- /dev/null
+++ b/src/ranap/RANAP_Requested-RAB-Parameter-MaxBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Requested-RAB-Parameter-MaxBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_Requested_RAB_Parameter_MaxBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_Requested_RAB_Parameter_MaxBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_MaxBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Requested_RAB_Parameter_MaxBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_Requested_RAB_Parameter_MaxBitrateList_specs_1 = {
+	sizeof(struct RANAP_Requested_RAB_Parameter_MaxBitrateList),
+	offsetof(struct RANAP_Requested_RAB_Parameter_MaxBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Requested_RAB_Parameter_MaxBitrateList = {
+	"RANAP_Requested-RAB-Parameter-MaxBitrateList",
+	"RANAP_Requested-RAB-Parameter-MaxBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Requested_RAB_Parameter_MaxBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_MaxBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_MaxBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Requested_RAB_Parameter_MaxBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_MaxBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_MaxBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Requested_RAB_Parameter_MaxBitrateList_constr_1,
+	asn_MBR_RANAP_Requested_RAB_Parameter_MaxBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_Requested_RAB_Parameter_MaxBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Requested-RAB-Parameter-MaxBitrateList.h b/src/ranap/RANAP_Requested-RAB-Parameter-MaxBitrateList.h
new file mode 100644
index 0000000..0b2956c
--- /dev/null
+++ b/src/ranap/RANAP_Requested-RAB-Parameter-MaxBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Requested_RAB_Parameter_MaxBitrateList_H_
+#define	_RANAP_Requested_RAB_Parameter_MaxBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_MaxBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Requested-RAB-Parameter-MaxBitrateList */
+typedef struct RANAP_Requested_RAB_Parameter_MaxBitrateList {
+	A_SEQUENCE_OF(RANAP_MaxBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Requested_RAB_Parameter_MaxBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Requested_RAB_Parameter_MaxBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Requested_RAB_Parameter_MaxBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Requested-RAB-Parameter-Values.c b/src/ranap/RANAP_Requested-RAB-Parameter-Values.c
new file mode 100644
index 0000000..887cbe4
--- /dev/null
+++ b/src/ranap/RANAP_Requested-RAB-Parameter-Values.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Requested-RAB-Parameter-Values.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_Requested_RAB_Parameter_Values_1[] = {
+	{ ATF_POINTER, 3, offsetof(struct RANAP_Requested_RAB_Parameter_Values, requestedMaxBitrates),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Requested_RAB_Parameter_MaxBitrateList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"requestedMaxBitrates"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_Requested_RAB_Parameter_Values, requestedGuaranteedBitrates),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Requested_RAB_Parameter_GuaranteedBitrateList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"requestedGuaranteedBitrates"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_Requested_RAB_Parameter_Values, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_Requested_RAB_Parameter_Values_oms_1[] = { 0, 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_Requested_RAB_Parameter_Values_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Requested_RAB_Parameter_Values_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requestedMaxBitrates */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* requestedGuaranteedBitrates */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Requested_RAB_Parameter_Values_specs_1 = {
+	sizeof(struct RANAP_Requested_RAB_Parameter_Values),
+	offsetof(struct RANAP_Requested_RAB_Parameter_Values, _asn_ctx),
+	asn_MAP_RANAP_Requested_RAB_Parameter_Values_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_Requested_RAB_Parameter_Values_oms_1,	/* Optional members */
+	3, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Requested_RAB_Parameter_Values = {
+	"RANAP_Requested-RAB-Parameter-Values",
+	"RANAP_Requested-RAB-Parameter-Values",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Requested_RAB_Parameter_Values_tags_1,
+	sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_Values_tags_1)
+		/sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_Values_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Requested_RAB_Parameter_Values_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_Values_tags_1)
+		/sizeof(asn_DEF_RANAP_Requested_RAB_Parameter_Values_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Requested_RAB_Parameter_Values_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_Requested_RAB_Parameter_Values_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Requested-RAB-Parameter-Values.h b/src/ranap/RANAP_Requested-RAB-Parameter-Values.h
new file mode 100644
index 0000000..b5d11cb
--- /dev/null
+++ b/src/ranap/RANAP_Requested-RAB-Parameter-Values.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Requested_RAB_Parameter_Values_H_
+#define	_RANAP_Requested_RAB_Parameter_Values_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_Requested-RAB-Parameter-MaxBitrateList.h"
+#include "RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Requested-RAB-Parameter-Values */
+typedef struct RANAP_Requested_RAB_Parameter_Values {
+	RANAP_Requested_RAB_Parameter_MaxBitrateList_t	*requestedMaxBitrates	/* OPTIONAL */;
+	RANAP_Requested_RAB_Parameter_GuaranteedBitrateList_t	*requestedGuaranteedBitrates	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Requested_RAB_Parameter_Values_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Requested_RAB_Parameter_Values;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Requested_RAB_Parameter_Values_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RequestedGANSSAssistanceData.c b/src/ranap/RANAP_RequestedGANSSAssistanceData.c
new file mode 100644
index 0000000..854b796
--- /dev/null
+++ b/src/ranap/RANAP_RequestedGANSSAssistanceData.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RequestedGANSSAssistanceData.h"
+
+int
+RANAP_RequestedGANSSAssistanceData_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 1l && size <= 201l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RequestedGANSSAssistanceData_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_RequestedGANSSAssistanceData_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RequestedGANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RequestedGANSSAssistanceData_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RequestedGANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RequestedGANSSAssistanceData_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RequestedGANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RequestedGANSSAssistanceData_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RequestedGANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RequestedGANSSAssistanceData_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RequestedGANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RequestedGANSSAssistanceData_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RequestedGANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RequestedGANSSAssistanceData_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RequestedGANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RequestedGANSSAssistanceData_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RequestedGANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RequestedGANSSAssistanceData_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RequestedGANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RequestedGANSSAssistanceData_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RequestedGANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RequestedGANSSAssistanceData_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 8,  8,  1l,  201l }	/* (SIZE(1..201)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RequestedGANSSAssistanceData_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RequestedGANSSAssistanceData = {
+	"RANAP_RequestedGANSSAssistanceData",
+	"RANAP_RequestedGANSSAssistanceData",
+	RANAP_RequestedGANSSAssistanceData_free,
+	RANAP_RequestedGANSSAssistanceData_print,
+	RANAP_RequestedGANSSAssistanceData_constraint,
+	RANAP_RequestedGANSSAssistanceData_decode_ber,
+	RANAP_RequestedGANSSAssistanceData_encode_der,
+	RANAP_RequestedGANSSAssistanceData_decode_xer,
+	RANAP_RequestedGANSSAssistanceData_encode_xer,
+	RANAP_RequestedGANSSAssistanceData_decode_uper,
+	RANAP_RequestedGANSSAssistanceData_encode_uper,
+	RANAP_RequestedGANSSAssistanceData_decode_aper,
+	RANAP_RequestedGANSSAssistanceData_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RequestedGANSSAssistanceData_tags_1,
+	sizeof(asn_DEF_RANAP_RequestedGANSSAssistanceData_tags_1)
+		/sizeof(asn_DEF_RANAP_RequestedGANSSAssistanceData_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RequestedGANSSAssistanceData_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RequestedGANSSAssistanceData_tags_1)
+		/sizeof(asn_DEF_RANAP_RequestedGANSSAssistanceData_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RequestedGANSSAssistanceData_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_RequestedGANSSAssistanceData.h b/src/ranap/RANAP_RequestedGANSSAssistanceData.h
new file mode 100644
index 0000000..86adfde
--- /dev/null
+++ b/src/ranap/RANAP_RequestedGANSSAssistanceData.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RequestedGANSSAssistanceData_H_
+#define	_RANAP_RequestedGANSSAssistanceData_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RequestedGANSSAssistanceData */
+typedef OCTET_STRING_t	 RANAP_RequestedGANSSAssistanceData_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RequestedGANSSAssistanceData;
+asn_struct_free_f RANAP_RequestedGANSSAssistanceData_free;
+asn_struct_print_f RANAP_RequestedGANSSAssistanceData_print;
+asn_constr_check_f RANAP_RequestedGANSSAssistanceData_constraint;
+ber_type_decoder_f RANAP_RequestedGANSSAssistanceData_decode_ber;
+der_type_encoder_f RANAP_RequestedGANSSAssistanceData_encode_der;
+xer_type_decoder_f RANAP_RequestedGANSSAssistanceData_decode_xer;
+xer_type_encoder_f RANAP_RequestedGANSSAssistanceData_encode_xer;
+per_type_decoder_f RANAP_RequestedGANSSAssistanceData_decode_uper;
+per_type_encoder_f RANAP_RequestedGANSSAssistanceData_encode_uper;
+per_type_decoder_f RANAP_RequestedGANSSAssistanceData_decode_aper;
+per_type_encoder_f RANAP_RequestedGANSSAssistanceData_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RequestedGANSSAssistanceData_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RequestedGPSAssistanceData.c b/src/ranap/RANAP_RequestedGPSAssistanceData.c
new file mode 100644
index 0000000..85fcb1f
--- /dev/null
+++ b/src/ranap/RANAP_RequestedGPSAssistanceData.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RequestedGPSAssistanceData.h"
+
+int
+RANAP_RequestedGPSAssistanceData_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 1l && size <= 38l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RequestedGPSAssistanceData_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_RequestedGPSAssistanceData_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RequestedGPSAssistanceData_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RequestedGPSAssistanceData_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RequestedGPSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RequestedGPSAssistanceData_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RequestedGPSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RequestedGPSAssistanceData_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RequestedGPSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RequestedGPSAssistanceData_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RequestedGPSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RequestedGPSAssistanceData_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RequestedGPSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RequestedGPSAssistanceData_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RequestedGPSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RequestedGPSAssistanceData_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RequestedGPSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RequestedGPSAssistanceData_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RequestedGPSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RequestedGPSAssistanceData_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RequestedGPSAssistanceData_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RequestedGPSAssistanceData_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1l,  38l }	/* (SIZE(1..38)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RequestedGPSAssistanceData_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RequestedGPSAssistanceData = {
+	"RANAP_RequestedGPSAssistanceData",
+	"RANAP_RequestedGPSAssistanceData",
+	RANAP_RequestedGPSAssistanceData_free,
+	RANAP_RequestedGPSAssistanceData_print,
+	RANAP_RequestedGPSAssistanceData_constraint,
+	RANAP_RequestedGPSAssistanceData_decode_ber,
+	RANAP_RequestedGPSAssistanceData_encode_der,
+	RANAP_RequestedGPSAssistanceData_decode_xer,
+	RANAP_RequestedGPSAssistanceData_encode_xer,
+	RANAP_RequestedGPSAssistanceData_decode_uper,
+	RANAP_RequestedGPSAssistanceData_encode_uper,
+	RANAP_RequestedGPSAssistanceData_decode_aper,
+	RANAP_RequestedGPSAssistanceData_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RequestedGPSAssistanceData_tags_1,
+	sizeof(asn_DEF_RANAP_RequestedGPSAssistanceData_tags_1)
+		/sizeof(asn_DEF_RANAP_RequestedGPSAssistanceData_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RequestedGPSAssistanceData_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RequestedGPSAssistanceData_tags_1)
+		/sizeof(asn_DEF_RANAP_RequestedGPSAssistanceData_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RequestedGPSAssistanceData_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_RequestedGPSAssistanceData.h b/src/ranap/RANAP_RequestedGPSAssistanceData.h
new file mode 100644
index 0000000..0ce5a5c
--- /dev/null
+++ b/src/ranap/RANAP_RequestedGPSAssistanceData.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RequestedGPSAssistanceData_H_
+#define	_RANAP_RequestedGPSAssistanceData_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RequestedGPSAssistanceData */
+typedef OCTET_STRING_t	 RANAP_RequestedGPSAssistanceData_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RequestedGPSAssistanceData;
+asn_struct_free_f RANAP_RequestedGPSAssistanceData_free;
+asn_struct_print_f RANAP_RequestedGPSAssistanceData_print;
+asn_constr_check_f RANAP_RequestedGPSAssistanceData_constraint;
+ber_type_decoder_f RANAP_RequestedGPSAssistanceData_decode_ber;
+der_type_encoder_f RANAP_RequestedGPSAssistanceData_encode_der;
+xer_type_decoder_f RANAP_RequestedGPSAssistanceData_decode_xer;
+xer_type_encoder_f RANAP_RequestedGPSAssistanceData_encode_xer;
+per_type_decoder_f RANAP_RequestedGPSAssistanceData_decode_uper;
+per_type_encoder_f RANAP_RequestedGPSAssistanceData_encode_uper;
+per_type_decoder_f RANAP_RequestedGPSAssistanceData_decode_aper;
+per_type_encoder_f RANAP_RequestedGPSAssistanceData_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RequestedGPSAssistanceData_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RequestedLocationRelatedDataType.c b/src/ranap/RANAP_RequestedLocationRelatedDataType.c
new file mode 100644
index 0000000..38e95f1
--- /dev/null
+++ b/src/ranap/RANAP_RequestedLocationRelatedDataType.c
@@ -0,0 +1,179 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RequestedLocationRelatedDataType.h"
+
+int
+RANAP_RequestedLocationRelatedDataType_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_RequestedLocationRelatedDataType_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_RequestedLocationRelatedDataType_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_RequestedLocationRelatedDataType_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_RequestedLocationRelatedDataType_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RequestedLocationRelatedDataType_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RequestedLocationRelatedDataType_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_RequestedLocationRelatedDataType_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_RequestedLocationRelatedDataType_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RequestedLocationRelatedDataType_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RequestedLocationRelatedDataType_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_RequestedLocationRelatedDataType_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_RequestedLocationRelatedDataType_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_RequestedLocationRelatedDataType_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_RequestedLocationRelatedDataType_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RequestedLocationRelatedDataType_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_RequestedLocationRelatedDataType_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RequestedLocationRelatedDataType_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_RequestedLocationRelatedDataType_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_RequestedLocationRelatedDataType_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_RequestedLocationRelatedDataType_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_RequestedLocationRelatedDataType_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_RequestedLocationRelatedDataType_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  3l }	/* (0..3,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_RequestedLocationRelatedDataType_value2enum_1[] = {
+	{ 0,	27,	"decipheringKeysUEBasedOTDOA" },
+	{ 1,	26,	"decipheringKeysAssistedGPS" },
+	{ 2,	35,	"dedicatedAssistanceDataUEBasedOTDOA" },
+	{ 3,	34,	"dedicatedAssistanceDataAssistedGPS" },
+	{ 4,	28,	"decipheringKeysAssistedGANSS" },
+	{ 5,	36,	"dedicatedAssistanceDataAssistedGANSS" },
+	{ 6,	34,	"decipheringKeysAssistedGPSandGANSS" },
+	{ 7,	42,	"dedicatedAssistanceDataAssistedGPSandGANSS" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_RequestedLocationRelatedDataType_enum2value_1[] = {
+	4,	/* decipheringKeysAssistedGANSS(4) */
+	1,	/* decipheringKeysAssistedGPS(1) */
+	6,	/* decipheringKeysAssistedGPSandGANSS(6) */
+	0,	/* decipheringKeysUEBasedOTDOA(0) */
+	5,	/* dedicatedAssistanceDataAssistedGANSS(5) */
+	3,	/* dedicatedAssistanceDataAssistedGPS(3) */
+	7,	/* dedicatedAssistanceDataAssistedGPSandGANSS(7) */
+	2	/* dedicatedAssistanceDataUEBasedOTDOA(2) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_RequestedLocationRelatedDataType_specs_1 = {
+	asn_MAP_RANAP_RequestedLocationRelatedDataType_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_RequestedLocationRelatedDataType_enum2value_1,	/* N => "tag"; sorted by N */
+	8,	/* Number of elements in the maps */
+	5,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RequestedLocationRelatedDataType_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RequestedLocationRelatedDataType = {
+	"RANAP_RequestedLocationRelatedDataType",
+	"RANAP_RequestedLocationRelatedDataType",
+	RANAP_RequestedLocationRelatedDataType_free,
+	RANAP_RequestedLocationRelatedDataType_print,
+	RANAP_RequestedLocationRelatedDataType_constraint,
+	RANAP_RequestedLocationRelatedDataType_decode_ber,
+	RANAP_RequestedLocationRelatedDataType_encode_der,
+	RANAP_RequestedLocationRelatedDataType_decode_xer,
+	RANAP_RequestedLocationRelatedDataType_encode_xer,
+	RANAP_RequestedLocationRelatedDataType_decode_uper,
+	RANAP_RequestedLocationRelatedDataType_encode_uper,
+	RANAP_RequestedLocationRelatedDataType_decode_aper,
+	RANAP_RequestedLocationRelatedDataType_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RequestedLocationRelatedDataType_tags_1,
+	sizeof(asn_DEF_RANAP_RequestedLocationRelatedDataType_tags_1)
+		/sizeof(asn_DEF_RANAP_RequestedLocationRelatedDataType_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RequestedLocationRelatedDataType_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RequestedLocationRelatedDataType_tags_1)
+		/sizeof(asn_DEF_RANAP_RequestedLocationRelatedDataType_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RequestedLocationRelatedDataType_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_RequestedLocationRelatedDataType_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RequestedLocationRelatedDataType.h b/src/ranap/RANAP_RequestedLocationRelatedDataType.h
new file mode 100644
index 0000000..786ea7c
--- /dev/null
+++ b/src/ranap/RANAP_RequestedLocationRelatedDataType.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RequestedLocationRelatedDataType_H_
+#define	_RANAP_RequestedLocationRelatedDataType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_RequestedLocationRelatedDataType {
+	RANAP_RequestedLocationRelatedDataType_decipheringKeysUEBasedOTDOA	= 0,
+	RANAP_RequestedLocationRelatedDataType_decipheringKeysAssistedGPS	= 1,
+	RANAP_RequestedLocationRelatedDataType_dedicatedAssistanceDataUEBasedOTDOA	= 2,
+	RANAP_RequestedLocationRelatedDataType_dedicatedAssistanceDataAssistedGPS	= 3,
+	/*
+	 * Enumeration is extensible
+	 */
+	RANAP_RequestedLocationRelatedDataType_decipheringKeysAssistedGANSS	= 4,
+	RANAP_RequestedLocationRelatedDataType_dedicatedAssistanceDataAssistedGANSS	= 5,
+	RANAP_RequestedLocationRelatedDataType_decipheringKeysAssistedGPSandGANSS	= 6,
+	RANAP_RequestedLocationRelatedDataType_dedicatedAssistanceDataAssistedGPSandGANSS	= 7
+} e_RANAP_RequestedLocationRelatedDataType;
+
+/* RANAP_RequestedLocationRelatedDataType */
+typedef long	 RANAP_RequestedLocationRelatedDataType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RequestedLocationRelatedDataType;
+asn_struct_free_f RANAP_RequestedLocationRelatedDataType_free;
+asn_struct_print_f RANAP_RequestedLocationRelatedDataType_print;
+asn_constr_check_f RANAP_RequestedLocationRelatedDataType_constraint;
+ber_type_decoder_f RANAP_RequestedLocationRelatedDataType_decode_ber;
+der_type_encoder_f RANAP_RequestedLocationRelatedDataType_encode_der;
+xer_type_decoder_f RANAP_RequestedLocationRelatedDataType_decode_xer;
+xer_type_encoder_f RANAP_RequestedLocationRelatedDataType_encode_xer;
+per_type_decoder_f RANAP_RequestedLocationRelatedDataType_decode_uper;
+per_type_encoder_f RANAP_RequestedLocationRelatedDataType_encode_uper;
+per_type_decoder_f RANAP_RequestedLocationRelatedDataType_decode_aper;
+per_type_encoder_f RANAP_RequestedLocationRelatedDataType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RequestedLocationRelatedDataType_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.c b/src/ranap/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.c
new file mode 100644
index 0000000..87813a3
--- /dev/null
+++ b/src/ranap/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 9,  9,  1l,  512l }	/* (SIZE(1..512)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_MBMSIPMulticastAddressandAPNlist,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_specs_1 = {
+	sizeof(struct RANAP_RequestedMBMSIPMulticastAddressandAPNRequest),
+	offsetof(struct RANAP_RequestedMBMSIPMulticastAddressandAPNRequest, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest = {
+	"RANAP_RequestedMBMSIPMulticastAddressandAPNRequest",
+	"RANAP_RequestedMBMSIPMulticastAddressandAPNRequest",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_tags_1,
+	sizeof(asn_DEF_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_constr_1,
+	asn_MBR_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.h b/src/ranap/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.h
new file mode 100644
index 0000000..efec336
--- /dev/null
+++ b/src/ranap/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_H_
+#define	_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_MBMSIPMulticastAddressandAPNlist.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RequestedMBMSIPMulticastAddressandAPNRequest */
+typedef struct RANAP_RequestedMBMSIPMulticastAddressandAPNRequest {
+	A_SEQUENCE_OF(RANAP_MBMSIPMulticastAddressandAPNlist_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RequestedMBMSIPMulticastAddressandAPNRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RequestedMBMSIPMulticastAddressandAPNRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_RequestedMulticastServiceList.c b/src/ranap/RANAP_RequestedMulticastServiceList.c
new file mode 100644
index 0000000..ae6e1db
--- /dev/null
+++ b/src/ranap/RANAP_RequestedMulticastServiceList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_RequestedMulticastServiceList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_RequestedMulticastServiceList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 7,  7,  1l,  128l }	/* (SIZE(1..128)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_RequestedMulticastServiceList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_TMGI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_RequestedMulticastServiceList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_RequestedMulticastServiceList_specs_1 = {
+	sizeof(struct RANAP_RequestedMulticastServiceList),
+	offsetof(struct RANAP_RequestedMulticastServiceList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RequestedMulticastServiceList = {
+	"RANAP_RequestedMulticastServiceList",
+	"RANAP_RequestedMulticastServiceList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_RequestedMulticastServiceList_tags_1,
+	sizeof(asn_DEF_RANAP_RequestedMulticastServiceList_tags_1)
+		/sizeof(asn_DEF_RANAP_RequestedMulticastServiceList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RequestedMulticastServiceList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RequestedMulticastServiceList_tags_1)
+		/sizeof(asn_DEF_RANAP_RequestedMulticastServiceList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_RequestedMulticastServiceList_constr_1,
+	asn_MBR_RANAP_RequestedMulticastServiceList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_RequestedMulticastServiceList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_RequestedMulticastServiceList.h b/src/ranap/RANAP_RequestedMulticastServiceList.h
new file mode 100644
index 0000000..859a692
--- /dev/null
+++ b/src/ranap/RANAP_RequestedMulticastServiceList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_RequestedMulticastServiceList_H_
+#define	_RANAP_RequestedMulticastServiceList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_TMGI.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_RequestedMulticastServiceList */
+typedef struct RANAP_RequestedMulticastServiceList {
+	A_SEQUENCE_OF(RANAP_TMGI_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_RequestedMulticastServiceList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_RequestedMulticastServiceList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_RequestedMulticastServiceList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Reset.c b/src/ranap/RANAP_Reset.c
new file mode 100644
index 0000000..cc808ff
--- /dev/null
+++ b/src/ranap/RANAP_Reset.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_Reset.h"
+
+static int
+memb_reset_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_reset_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_reset_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_reset_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_reset_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_reset_ies_specs_2 = {
+	sizeof(struct reset_ies),
+	offsetof(struct reset_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_reset_ies_2 = {
+	"reset-ies",
+	"reset-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_reset_ies_tags_2,
+	sizeof(asn_DEF_reset_ies_tags_2)
+		/sizeof(asn_DEF_reset_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_reset_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_reset_ies_tags_2)
+		/sizeof(asn_DEF_reset_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_reset_ies_constr_2,
+	asn_MBR_reset_ies_2,
+	1,	/* Single element */
+	&asn_SPC_reset_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_Reset_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Reset, reset_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_reset_ies_2,
+		memb_reset_ies_constraint_1,
+		&asn_PER_memb_reset_ies_constr_2,
+		0,
+		"reset-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Reset_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Reset_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* reset-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Reset_specs_1 = {
+	sizeof(struct RANAP_Reset),
+	offsetof(struct RANAP_Reset, _asn_ctx),
+	asn_MAP_RANAP_Reset_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Reset = {
+	"RANAP_Reset",
+	"RANAP_Reset",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Reset_tags_1,
+	sizeof(asn_DEF_RANAP_Reset_tags_1)
+		/sizeof(asn_DEF_RANAP_Reset_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Reset_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Reset_tags_1)
+		/sizeof(asn_DEF_RANAP_Reset_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Reset_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_Reset_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Reset.h b/src/ranap/RANAP_Reset.h
new file mode 100644
index 0000000..2dc8cf1
--- /dev/null
+++ b/src/ranap/RANAP_Reset.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_Reset_H_
+#define	_RANAP_Reset_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Reset */
+typedef struct RANAP_Reset {
+	struct reset_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} reset_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Reset_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Reset;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Reset_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ResetAcknowledge.c b/src/ranap/RANAP_ResetAcknowledge.c
new file mode 100644
index 0000000..6d32764
--- /dev/null
+++ b/src/ranap/RANAP_ResetAcknowledge.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_ResetAcknowledge.h"
+
+static int
+memb_resetAcknowledge_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_resetAcknowledge_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_resetAcknowledge_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_resetAcknowledge_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_resetAcknowledge_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_resetAcknowledge_ies_specs_2 = {
+	sizeof(struct resetAcknowledge_ies),
+	offsetof(struct resetAcknowledge_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_resetAcknowledge_ies_2 = {
+	"resetAcknowledge-ies",
+	"resetAcknowledge-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_resetAcknowledge_ies_tags_2,
+	sizeof(asn_DEF_resetAcknowledge_ies_tags_2)
+		/sizeof(asn_DEF_resetAcknowledge_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_resetAcknowledge_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_resetAcknowledge_ies_tags_2)
+		/sizeof(asn_DEF_resetAcknowledge_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_resetAcknowledge_ies_constr_2,
+	asn_MBR_resetAcknowledge_ies_2,
+	1,	/* Single element */
+	&asn_SPC_resetAcknowledge_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_ResetAcknowledge_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_ResetAcknowledge, resetAcknowledge_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_resetAcknowledge_ies_2,
+		memb_resetAcknowledge_ies_constraint_1,
+		&asn_PER_memb_resetAcknowledge_ies_constr_2,
+		0,
+		"resetAcknowledge-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ResetAcknowledge_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_ResetAcknowledge_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* resetAcknowledge-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_ResetAcknowledge_specs_1 = {
+	sizeof(struct RANAP_ResetAcknowledge),
+	offsetof(struct RANAP_ResetAcknowledge, _asn_ctx),
+	asn_MAP_RANAP_ResetAcknowledge_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ResetAcknowledge = {
+	"RANAP_ResetAcknowledge",
+	"RANAP_ResetAcknowledge",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ResetAcknowledge_tags_1,
+	sizeof(asn_DEF_RANAP_ResetAcknowledge_tags_1)
+		/sizeof(asn_DEF_RANAP_ResetAcknowledge_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ResetAcknowledge_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ResetAcknowledge_tags_1)
+		/sizeof(asn_DEF_RANAP_ResetAcknowledge_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_ResetAcknowledge_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_ResetAcknowledge_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ResetAcknowledge.h b/src/ranap/RANAP_ResetAcknowledge.h
new file mode 100644
index 0000000..1c56846
--- /dev/null
+++ b/src/ranap/RANAP_ResetAcknowledge.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_ResetAcknowledge_H_
+#define	_RANAP_ResetAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ResetAcknowledge */
+typedef struct RANAP_ResetAcknowledge {
+	struct resetAcknowledge_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} resetAcknowledge_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_ResetAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ResetAcknowledge;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ResetAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ResetResource.c b/src/ranap/RANAP_ResetResource.c
new file mode 100644
index 0000000..a3f216c
--- /dev/null
+++ b/src/ranap/RANAP_ResetResource.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_ResetResource.h"
+
+static int
+memb_resetResource_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_resetResource_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_resetResource_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_resetResource_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_resetResource_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_resetResource_ies_specs_2 = {
+	sizeof(struct resetResource_ies),
+	offsetof(struct resetResource_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_resetResource_ies_2 = {
+	"resetResource-ies",
+	"resetResource-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_resetResource_ies_tags_2,
+	sizeof(asn_DEF_resetResource_ies_tags_2)
+		/sizeof(asn_DEF_resetResource_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_resetResource_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_resetResource_ies_tags_2)
+		/sizeof(asn_DEF_resetResource_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_resetResource_ies_constr_2,
+	asn_MBR_resetResource_ies_2,
+	1,	/* Single element */
+	&asn_SPC_resetResource_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_ResetResource_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_ResetResource, resetResource_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_resetResource_ies_2,
+		memb_resetResource_ies_constraint_1,
+		&asn_PER_memb_resetResource_ies_constr_2,
+		0,
+		"resetResource-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ResetResource_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_ResetResource_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* resetResource-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_ResetResource_specs_1 = {
+	sizeof(struct RANAP_ResetResource),
+	offsetof(struct RANAP_ResetResource, _asn_ctx),
+	asn_MAP_RANAP_ResetResource_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ResetResource = {
+	"RANAP_ResetResource",
+	"RANAP_ResetResource",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ResetResource_tags_1,
+	sizeof(asn_DEF_RANAP_ResetResource_tags_1)
+		/sizeof(asn_DEF_RANAP_ResetResource_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ResetResource_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ResetResource_tags_1)
+		/sizeof(asn_DEF_RANAP_ResetResource_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_ResetResource_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_ResetResource_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ResetResource.h b/src/ranap/RANAP_ResetResource.h
new file mode 100644
index 0000000..9f22fba
--- /dev/null
+++ b/src/ranap/RANAP_ResetResource.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_ResetResource_H_
+#define	_RANAP_ResetResource_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ResetResource */
+typedef struct RANAP_ResetResource {
+	struct resetResource_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} resetResource_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_ResetResource_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ResetResource;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ResetResource_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ResetResourceAcknowledge.c b/src/ranap/RANAP_ResetResourceAcknowledge.c
new file mode 100644
index 0000000..82d2063
--- /dev/null
+++ b/src/ranap/RANAP_ResetResourceAcknowledge.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_ResetResourceAcknowledge.h"
+
+static int
+memb_resetResourceAcknowledge_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_resetResourceAcknowledge_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_resetResourceAcknowledge_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_resetResourceAcknowledge_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_resetResourceAcknowledge_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_resetResourceAcknowledge_ies_specs_2 = {
+	sizeof(struct resetResourceAcknowledge_ies),
+	offsetof(struct resetResourceAcknowledge_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_resetResourceAcknowledge_ies_2 = {
+	"resetResourceAcknowledge-ies",
+	"resetResourceAcknowledge-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_resetResourceAcknowledge_ies_tags_2,
+	sizeof(asn_DEF_resetResourceAcknowledge_ies_tags_2)
+		/sizeof(asn_DEF_resetResourceAcknowledge_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_resetResourceAcknowledge_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_resetResourceAcknowledge_ies_tags_2)
+		/sizeof(asn_DEF_resetResourceAcknowledge_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_resetResourceAcknowledge_ies_constr_2,
+	asn_MBR_resetResourceAcknowledge_ies_2,
+	1,	/* Single element */
+	&asn_SPC_resetResourceAcknowledge_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_ResetResourceAcknowledge_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_ResetResourceAcknowledge, resetResourceAcknowledge_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_resetResourceAcknowledge_ies_2,
+		memb_resetResourceAcknowledge_ies_constraint_1,
+		&asn_PER_memb_resetResourceAcknowledge_ies_constr_2,
+		0,
+		"resetResourceAcknowledge-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ResetResourceAcknowledge_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_ResetResourceAcknowledge_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* resetResourceAcknowledge-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_ResetResourceAcknowledge_specs_1 = {
+	sizeof(struct RANAP_ResetResourceAcknowledge),
+	offsetof(struct RANAP_ResetResourceAcknowledge, _asn_ctx),
+	asn_MAP_RANAP_ResetResourceAcknowledge_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ResetResourceAcknowledge = {
+	"RANAP_ResetResourceAcknowledge",
+	"RANAP_ResetResourceAcknowledge",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ResetResourceAcknowledge_tags_1,
+	sizeof(asn_DEF_RANAP_ResetResourceAcknowledge_tags_1)
+		/sizeof(asn_DEF_RANAP_ResetResourceAcknowledge_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ResetResourceAcknowledge_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ResetResourceAcknowledge_tags_1)
+		/sizeof(asn_DEF_RANAP_ResetResourceAcknowledge_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_ResetResourceAcknowledge_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_ResetResourceAcknowledge_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ResetResourceAcknowledge.h b/src/ranap/RANAP_ResetResourceAcknowledge.h
new file mode 100644
index 0000000..33d460a
--- /dev/null
+++ b/src/ranap/RANAP_ResetResourceAcknowledge.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_ResetResourceAcknowledge_H_
+#define	_RANAP_ResetResourceAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ResetResourceAcknowledge */
+typedef struct RANAP_ResetResourceAcknowledge {
+	struct resetResourceAcknowledge_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} resetResourceAcknowledge_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_ResetResourceAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ResetResourceAcknowledge;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ResetResourceAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ResidualBitErrorRatio.c b/src/ranap/RANAP_ResidualBitErrorRatio.c
new file mode 100644
index 0000000..c770f03
--- /dev/null
+++ b/src/ranap/RANAP_ResidualBitErrorRatio.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ResidualBitErrorRatio.h"
+
+static int
+memb_mantissa_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 9l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_exponent_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 8l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_mantissa_constr_2 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 4,  4,  1l,  9l }	/* (1..9) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_exponent_constr_3 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 3,  3,  1l,  8l }	/* (1..8) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_ResidualBitErrorRatio_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_ResidualBitErrorRatio, mantissa),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_mantissa_constraint_1,
+		&asn_PER_memb_mantissa_constr_2,
+		0,
+		"mantissa"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_ResidualBitErrorRatio, exponent),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_exponent_constraint_1,
+		&asn_PER_memb_exponent_constr_3,
+		0,
+		"exponent"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_ResidualBitErrorRatio, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_ResidualBitErrorRatio_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_ResidualBitErrorRatio_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_ResidualBitErrorRatio_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mantissa */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* exponent */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_ResidualBitErrorRatio_specs_1 = {
+	sizeof(struct RANAP_ResidualBitErrorRatio),
+	offsetof(struct RANAP_ResidualBitErrorRatio, _asn_ctx),
+	asn_MAP_RANAP_ResidualBitErrorRatio_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_ResidualBitErrorRatio_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ResidualBitErrorRatio = {
+	"RANAP_ResidualBitErrorRatio",
+	"RANAP_ResidualBitErrorRatio",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ResidualBitErrorRatio_tags_1,
+	sizeof(asn_DEF_RANAP_ResidualBitErrorRatio_tags_1)
+		/sizeof(asn_DEF_RANAP_ResidualBitErrorRatio_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ResidualBitErrorRatio_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ResidualBitErrorRatio_tags_1)
+		/sizeof(asn_DEF_RANAP_ResidualBitErrorRatio_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_ResidualBitErrorRatio_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_ResidualBitErrorRatio_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ResidualBitErrorRatio.h b/src/ranap/RANAP_ResidualBitErrorRatio.h
new file mode 100644
index 0000000..7baf04e
--- /dev/null
+++ b/src/ranap/RANAP_ResidualBitErrorRatio.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ResidualBitErrorRatio_H_
+#define	_RANAP_ResidualBitErrorRatio_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_ResidualBitErrorRatio */
+typedef struct RANAP_ResidualBitErrorRatio {
+	long	 mantissa;
+	long	 exponent;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_ResidualBitErrorRatio_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ResidualBitErrorRatio;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ResidualBitErrorRatio_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_ResponseTime.c b/src/ranap/RANAP_ResponseTime.c
new file mode 100644
index 0000000..2f40f0c
--- /dev/null
+++ b/src/ranap/RANAP_ResponseTime.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_ResponseTime.h"
+
+int
+RANAP_ResponseTime_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_ResponseTime_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_ResponseTime_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_ResponseTime_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_ResponseTime_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ResponseTime_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ResponseTime_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_ResponseTime_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_ResponseTime_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ResponseTime_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ResponseTime_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_ResponseTime_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_ResponseTime_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_ResponseTime_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_ResponseTime_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ResponseTime_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_ResponseTime_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ResponseTime_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_ResponseTime_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_ResponseTime_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_ResponseTime_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_ResponseTime_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_ResponseTime_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_ResponseTime_value2enum_1[] = {
+	{ 0,	8,	"lowdelay" },
+	{ 1,	13,	"delaytolerant" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_ResponseTime_enum2value_1[] = {
+	1,	/* delaytolerant(1) */
+	0	/* lowdelay(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_ResponseTime_specs_1 = {
+	asn_MAP_RANAP_ResponseTime_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_ResponseTime_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ResponseTime_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ResponseTime = {
+	"RANAP_ResponseTime",
+	"RANAP_ResponseTime",
+	RANAP_ResponseTime_free,
+	RANAP_ResponseTime_print,
+	RANAP_ResponseTime_constraint,
+	RANAP_ResponseTime_decode_ber,
+	RANAP_ResponseTime_encode_der,
+	RANAP_ResponseTime_decode_xer,
+	RANAP_ResponseTime_encode_xer,
+	RANAP_ResponseTime_decode_uper,
+	RANAP_ResponseTime_encode_uper,
+	RANAP_ResponseTime_decode_aper,
+	RANAP_ResponseTime_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ResponseTime_tags_1,
+	sizeof(asn_DEF_RANAP_ResponseTime_tags_1)
+		/sizeof(asn_DEF_RANAP_ResponseTime_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ResponseTime_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ResponseTime_tags_1)
+		/sizeof(asn_DEF_RANAP_ResponseTime_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_ResponseTime_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_ResponseTime_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_ResponseTime.h b/src/ranap/RANAP_ResponseTime.h
new file mode 100644
index 0000000..daeda50
--- /dev/null
+++ b/src/ranap/RANAP_ResponseTime.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_ResponseTime_H_
+#define	_RANAP_ResponseTime_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_ResponseTime {
+	RANAP_ResponseTime_lowdelay	= 0,
+	RANAP_ResponseTime_delaytolerant	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_ResponseTime;
+
+/* RANAP_ResponseTime */
+typedef long	 RANAP_ResponseTime_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_ResponseTime;
+asn_struct_free_f RANAP_ResponseTime_free;
+asn_struct_print_f RANAP_ResponseTime_print;
+asn_constr_check_f RANAP_ResponseTime_constraint;
+ber_type_decoder_f RANAP_ResponseTime_decode_ber;
+der_type_encoder_f RANAP_ResponseTime_encode_der;
+xer_type_decoder_f RANAP_ResponseTime_decode_xer;
+xer_type_encoder_f RANAP_ResponseTime_encode_xer;
+per_type_decoder_f RANAP_ResponseTime_decode_uper;
+per_type_encoder_f RANAP_ResponseTime_encode_uper;
+per_type_decoder_f RANAP_ResponseTime_decode_aper;
+per_type_encoder_f RANAP_ResponseTime_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_ResponseTime_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SAC.c b/src/ranap/RANAP_SAC.c
new file mode 100644
index 0000000..5c62b39
--- /dev/null
+++ b/src/ranap/RANAP_SAC.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SAC.h"
+
+int
+RANAP_SAC_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 2l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_SAC_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_SAC_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_SAC_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_SAC_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SAC_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SAC_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_SAC_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_SAC_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SAC_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SAC_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_SAC_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_SAC_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SAC_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SAC_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SAC_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_SAC_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SAC_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_SAC_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SAC_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_SAC_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SAC_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_SAC_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  2l,  2l }	/* (SIZE(2..2)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SAC_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SAC = {
+	"RANAP_SAC",
+	"RANAP_SAC",
+	RANAP_SAC_free,
+	RANAP_SAC_print,
+	RANAP_SAC_constraint,
+	RANAP_SAC_decode_ber,
+	RANAP_SAC_encode_der,
+	RANAP_SAC_decode_xer,
+	RANAP_SAC_encode_xer,
+	RANAP_SAC_decode_uper,
+	RANAP_SAC_encode_uper,
+	RANAP_SAC_decode_aper,
+	RANAP_SAC_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SAC_tags_1,
+	sizeof(asn_DEF_RANAP_SAC_tags_1)
+		/sizeof(asn_DEF_RANAP_SAC_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SAC_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SAC_tags_1)
+		/sizeof(asn_DEF_RANAP_SAC_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_SAC_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_SAC.h b/src/ranap/RANAP_SAC.h
new file mode 100644
index 0000000..f7d7e80
--- /dev/null
+++ b/src/ranap/RANAP_SAC.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SAC_H_
+#define	_RANAP_SAC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SAC */
+typedef OCTET_STRING_t	 RANAP_SAC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SAC;
+asn_struct_free_f RANAP_SAC_free;
+asn_struct_print_f RANAP_SAC_print;
+asn_constr_check_f RANAP_SAC_constraint;
+ber_type_decoder_f RANAP_SAC_decode_ber;
+der_type_encoder_f RANAP_SAC_encode_der;
+xer_type_decoder_f RANAP_SAC_decode_xer;
+xer_type_encoder_f RANAP_SAC_encode_xer;
+per_type_decoder_f RANAP_SAC_decode_uper;
+per_type_encoder_f RANAP_SAC_encode_uper;
+per_type_decoder_f RANAP_SAC_decode_aper;
+per_type_encoder_f RANAP_SAC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SAC_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SAI.c b/src/ranap/RANAP_SAI.c
new file mode 100644
index 0000000..8a81d4a
--- /dev/null
+++ b/src/ranap/RANAP_SAI.c
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SAI.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_SAI_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SAI, pLMNidentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PLMNidentity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pLMNidentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SAI, lAC),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_LAC,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"lAC"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SAI, sAC),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_SAC,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"sAC"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_SAI, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_SAI_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_RANAP_SAI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SAI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lAC */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sAC */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SAI_specs_1 = {
+	sizeof(struct RANAP_SAI),
+	offsetof(struct RANAP_SAI, _asn_ctx),
+	asn_MAP_RANAP_SAI_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_SAI_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SAI = {
+	"RANAP_SAI",
+	"RANAP_SAI",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SAI_tags_1,
+	sizeof(asn_DEF_RANAP_SAI_tags_1)
+		/sizeof(asn_DEF_RANAP_SAI_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SAI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SAI_tags_1)
+		/sizeof(asn_DEF_RANAP_SAI_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SAI_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_SAI_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SAI.h b/src/ranap/RANAP_SAI.h
new file mode 100644
index 0000000..a540975
--- /dev/null
+++ b/src/ranap/RANAP_SAI.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SAI_H_
+#define	_RANAP_SAI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PLMNidentity.h"
+#include "RANAP_LAC.h"
+#include "RANAP_SAC.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SAI */
+typedef struct RANAP_SAI {
+	RANAP_PLMNidentity_t	 pLMNidentity;
+	RANAP_LAC_t	 lAC;
+	RANAP_SAC_t	 sAC;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SAI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SAI;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SAI_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SAPI.c b/src/ranap/RANAP_SAPI.c
new file mode 100644
index 0000000..f93ef22
--- /dev/null
+++ b/src/ranap/RANAP_SAPI.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SAPI.h"
+
+int
+RANAP_SAPI_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_SAPI_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_SAPI_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_SAPI_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_SAPI_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SAPI_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SAPI_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_SAPI_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_SAPI_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SAPI_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SAPI_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_SAPI_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_SAPI_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SAPI_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SAPI_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SAPI_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_SAPI_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SAPI_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_SAPI_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SAPI_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_SAPI_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SAPI_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_SAPI_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_SAPI_value2enum_1[] = {
+	{ 0,	6,	"sapi-0" },
+	{ 1,	6,	"sapi-3" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_SAPI_enum2value_1[] = {
+	0,	/* sapi-0(0) */
+	1	/* sapi-3(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_SAPI_specs_1 = {
+	asn_MAP_RANAP_SAPI_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_SAPI_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SAPI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SAPI = {
+	"RANAP_SAPI",
+	"RANAP_SAPI",
+	RANAP_SAPI_free,
+	RANAP_SAPI_print,
+	RANAP_SAPI_constraint,
+	RANAP_SAPI_decode_ber,
+	RANAP_SAPI_encode_der,
+	RANAP_SAPI_decode_xer,
+	RANAP_SAPI_encode_xer,
+	RANAP_SAPI_decode_uper,
+	RANAP_SAPI_encode_uper,
+	RANAP_SAPI_decode_aper,
+	RANAP_SAPI_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SAPI_tags_1,
+	sizeof(asn_DEF_RANAP_SAPI_tags_1)
+		/sizeof(asn_DEF_RANAP_SAPI_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SAPI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SAPI_tags_1)
+		/sizeof(asn_DEF_RANAP_SAPI_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_SAPI_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_SAPI_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SAPI.h b/src/ranap/RANAP_SAPI.h
new file mode 100644
index 0000000..51a4996
--- /dev/null
+++ b/src/ranap/RANAP_SAPI.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SAPI_H_
+#define	_RANAP_SAPI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_SAPI {
+	RANAP_SAPI_sapi_0	= 0,
+	RANAP_SAPI_sapi_3	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_SAPI;
+
+/* RANAP_SAPI */
+typedef long	 RANAP_SAPI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SAPI;
+asn_struct_free_f RANAP_SAPI_free;
+asn_struct_print_f RANAP_SAPI_print;
+asn_constr_check_f RANAP_SAPI_constraint;
+ber_type_decoder_f RANAP_SAPI_decode_ber;
+der_type_encoder_f RANAP_SAPI_encode_der;
+xer_type_decoder_f RANAP_SAPI_decode_xer;
+xer_type_encoder_f RANAP_SAPI_encode_xer;
+per_type_decoder_f RANAP_SAPI_decode_uper;
+per_type_encoder_f RANAP_SAPI_encode_uper;
+per_type_decoder_f RANAP_SAPI_decode_aper;
+per_type_encoder_f RANAP_SAPI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SAPI_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SDU-ErrorRatio.c b/src/ranap/RANAP_SDU-ErrorRatio.c
new file mode 100644
index 0000000..dc9f744
--- /dev/null
+++ b/src/ranap/RANAP_SDU-ErrorRatio.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SDU-ErrorRatio.h"
+
+static int
+memb_mantissa_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 9l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_exponent_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 6l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_mantissa_constr_2 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 4,  4,  1l,  9l }	/* (1..9) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_exponent_constr_3 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 3,  3,  1l,  6l }	/* (1..6) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_SDU_ErrorRatio_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SDU_ErrorRatio, mantissa),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_mantissa_constraint_1,
+		&asn_PER_memb_mantissa_constr_2,
+		0,
+		"mantissa"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SDU_ErrorRatio, exponent),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_exponent_constraint_1,
+		&asn_PER_memb_exponent_constr_3,
+		0,
+		"exponent"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_SDU_ErrorRatio, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_SDU_ErrorRatio_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_SDU_ErrorRatio_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SDU_ErrorRatio_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mantissa */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* exponent */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SDU_ErrorRatio_specs_1 = {
+	sizeof(struct RANAP_SDU_ErrorRatio),
+	offsetof(struct RANAP_SDU_ErrorRatio, _asn_ctx),
+	asn_MAP_RANAP_SDU_ErrorRatio_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_SDU_ErrorRatio_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SDU_ErrorRatio = {
+	"RANAP_SDU-ErrorRatio",
+	"RANAP_SDU-ErrorRatio",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SDU_ErrorRatio_tags_1,
+	sizeof(asn_DEF_RANAP_SDU_ErrorRatio_tags_1)
+		/sizeof(asn_DEF_RANAP_SDU_ErrorRatio_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SDU_ErrorRatio_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SDU_ErrorRatio_tags_1)
+		/sizeof(asn_DEF_RANAP_SDU_ErrorRatio_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SDU_ErrorRatio_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_SDU_ErrorRatio_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SDU-ErrorRatio.h b/src/ranap/RANAP_SDU-ErrorRatio.h
new file mode 100644
index 0000000..752f350
--- /dev/null
+++ b/src/ranap/RANAP_SDU-ErrorRatio.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SDU_ErrorRatio_H_
+#define	_RANAP_SDU_ErrorRatio_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SDU-ErrorRatio */
+typedef struct RANAP_SDU_ErrorRatio {
+	long	 mantissa;
+	long	 exponent;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SDU_ErrorRatio_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SDU_ErrorRatio;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SDU_ErrorRatio_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SDU-FormatInformationParameters.c b/src/ranap/RANAP_SDU-FormatInformationParameters.c
new file mode 100644
index 0000000..181566a
--- /dev/null
+++ b/src/ranap/RANAP_SDU-FormatInformationParameters.c
@@ -0,0 +1,135 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SDU-FormatInformationParameters.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_SDU_FormatInformationParameters_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1l,  64l }	/* (SIZE(1..64)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Member_2[] = {
+	{ ATF_POINTER, 3, offsetof(struct Member, subflowSDU_Size),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_SubflowSDU_Size,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"subflowSDU-Size"
+		},
+	{ ATF_POINTER, 2, offsetof(struct Member, rAB_SubflowCombinationBitRate),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RAB_SubflowCombinationBitRate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rAB-SubflowCombinationBitRate"
+		},
+	{ ATF_POINTER, 1, offsetof(struct Member, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_Member_oms_2[] = { 0, 1, 2 };
+static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subflowSDU-Size */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rAB-SubflowCombinationBitRate */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
+	sizeof(struct Member),
+	offsetof(struct Member, _asn_ctx),
+	asn_MAP_Member_tag2el_2,
+	3,	/* Count of tags in the map */
+	asn_MAP_Member_oms_2,	/* Optional members */
+	3, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+	"SEQUENCE",
+	"SEQUENCE",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_Member_tags_2,
+	sizeof(asn_DEF_Member_tags_2)
+		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	asn_DEF_Member_tags_2,	/* Same as above */
+	sizeof(asn_DEF_Member_tags_2)
+		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_Member_2,
+	3,	/* Elements count */
+	&asn_SPC_Member_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_SDU_FormatInformationParameters_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_Member_2,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SDU_FormatInformationParameters_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_SDU_FormatInformationParameters_specs_1 = {
+	sizeof(struct RANAP_SDU_FormatInformationParameters),
+	offsetof(struct RANAP_SDU_FormatInformationParameters, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SDU_FormatInformationParameters = {
+	"RANAP_SDU-FormatInformationParameters",
+	"RANAP_SDU-FormatInformationParameters",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SDU_FormatInformationParameters_tags_1,
+	sizeof(asn_DEF_RANAP_SDU_FormatInformationParameters_tags_1)
+		/sizeof(asn_DEF_RANAP_SDU_FormatInformationParameters_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SDU_FormatInformationParameters_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SDU_FormatInformationParameters_tags_1)
+		/sizeof(asn_DEF_RANAP_SDU_FormatInformationParameters_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_SDU_FormatInformationParameters_constr_1,
+	asn_MBR_RANAP_SDU_FormatInformationParameters_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_SDU_FormatInformationParameters_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SDU-FormatInformationParameters.h b/src/ranap/RANAP_SDU-FormatInformationParameters.h
new file mode 100644
index 0000000..fb49c40
--- /dev/null
+++ b/src/ranap/RANAP_SDU-FormatInformationParameters.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SDU_FormatInformationParameters_H_
+#define	_RANAP_SDU_FormatInformationParameters_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "RANAP_SubflowSDU-Size.h"
+#include "RANAP_RAB-SubflowCombinationBitRate.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SDU-FormatInformationParameters */
+typedef struct RANAP_SDU_FormatInformationParameters {
+	A_SEQUENCE_OF(struct Member {
+		RANAP_SubflowSDU_Size_t	*subflowSDU_Size	/* OPTIONAL */;
+		RANAP_RAB_SubflowCombinationBitRate_t	*rAB_SubflowCombinationBitRate	/* OPTIONAL */;
+		RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SDU_FormatInformationParameters_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SDU_FormatInformationParameters;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SDU_FormatInformationParameters_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SDU-Parameters.c b/src/ranap/RANAP_SDU-Parameters.c
new file mode 100644
index 0000000..df97d4b
--- /dev/null
+++ b/src/ranap/RANAP_SDU-Parameters.c
@@ -0,0 +1,155 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SDU-Parameters.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_SDU_Parameters_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 3,  3,  1l,  7l }	/* (SIZE(1..7)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_MemberA_2[] = {
+	{ ATF_POINTER, 1, offsetof(struct MemberA, sDU_ErrorRatio),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_SDU_ErrorRatio,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"sDU-ErrorRatio"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct MemberA, residualBitErrorRatio),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ResidualBitErrorRatio,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"residualBitErrorRatio"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct MemberA, deliveryOfErroneousSDU),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_DeliveryOfErroneousSDU,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"deliveryOfErroneousSDU"
+		},
+	{ ATF_POINTER, 2, offsetof(struct MemberA, sDU_FormatInformationParameters),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_SDU_FormatInformationParameters,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"sDU-FormatInformationParameters"
+		},
+	{ ATF_POINTER, 1, offsetof(struct MemberA, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_MemberA_oms_2[] = { 0, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_MemberA_tags_2[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MemberA_tag2el_2[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sDU-ErrorRatio */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* residualBitErrorRatio */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* deliveryOfErroneousSDU */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sDU-FormatInformationParameters */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_MemberA_specs_2 = {
+	sizeof(struct MemberA),
+	offsetof(struct MemberA, _asn_ctx),
+	asn_MAP_MemberA_tag2el_2,
+	5,	/* Count of tags in the map */
+	asn_MAP_MemberA_oms_2,	/* Optional members */
+	3, 0,	/* Root/Additions */
+	4,	/* Start extensions */
+	6	/* Stop extensions */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_MemberA_2 = {
+	"SEQUENCE",
+	"SEQUENCE",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_MemberA_tags_2,
+	sizeof(asn_DEF_MemberA_tags_2)
+		/sizeof(asn_DEF_MemberA_tags_2[0]), /* 1 */
+	asn_DEF_MemberA_tags_2,	/* Same as above */
+	sizeof(asn_DEF_MemberA_tags_2)
+		/sizeof(asn_DEF_MemberA_tags_2[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_MemberA_2,
+	5,	/* Elements count */
+	&asn_SPC_MemberA_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_SDU_Parameters_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_MemberA_2,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SDU_Parameters_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_SDU_Parameters_specs_1 = {
+	sizeof(struct RANAP_SDU_Parameters),
+	offsetof(struct RANAP_SDU_Parameters, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SDU_Parameters = {
+	"RANAP_SDU-Parameters",
+	"RANAP_SDU-Parameters",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SDU_Parameters_tags_1,
+	sizeof(asn_DEF_RANAP_SDU_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_SDU_Parameters_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SDU_Parameters_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SDU_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_SDU_Parameters_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_SDU_Parameters_constr_1,
+	asn_MBR_RANAP_SDU_Parameters_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_SDU_Parameters_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SDU-Parameters.h b/src/ranap/RANAP_SDU-Parameters.h
new file mode 100644
index 0000000..0e6d158
--- /dev/null
+++ b/src/ranap/RANAP_SDU-Parameters.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SDU_Parameters_H_
+#define	_RANAP_SDU_Parameters_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "RANAP_SDU-ErrorRatio.h"
+#include "RANAP_ResidualBitErrorRatio.h"
+#include "RANAP_DeliveryOfErroneousSDU.h"
+#include "RANAP_SDU-FormatInformationParameters.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SDU-Parameters */
+typedef struct RANAP_SDU_Parameters {
+	A_SEQUENCE_OF(struct MemberA {
+		RANAP_SDU_ErrorRatio_t	*sDU_ErrorRatio	/* OPTIONAL */;
+		RANAP_ResidualBitErrorRatio_t	 residualBitErrorRatio;
+		RANAP_DeliveryOfErroneousSDU_t	 deliveryOfErroneousSDU;
+		RANAP_SDU_FormatInformationParameters_t	*sDU_FormatInformationParameters	/* OPTIONAL */;
+		RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SDU_Parameters_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SDU_Parameters;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SDU_Parameters_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SNA-Access-Information.c b/src/ranap/RANAP_SNA-Access-Information.c
new file mode 100644
index 0000000..5ef4f1d
--- /dev/null
+++ b/src/ranap/RANAP_SNA-Access-Information.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SNA-Access-Information.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_SNA_Access_Information_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SNA_Access_Information, authorisedPLMNs),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_AuthorisedPLMNs,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"authorisedPLMNs"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_SNA_Access_Information, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_SNA_Access_Information_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_SNA_Access_Information_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SNA_Access_Information_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* authorisedPLMNs */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SNA_Access_Information_specs_1 = {
+	sizeof(struct RANAP_SNA_Access_Information),
+	offsetof(struct RANAP_SNA_Access_Information, _asn_ctx),
+	asn_MAP_RANAP_SNA_Access_Information_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_SNA_Access_Information_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SNA_Access_Information = {
+	"RANAP_SNA-Access-Information",
+	"RANAP_SNA-Access-Information",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SNA_Access_Information_tags_1,
+	sizeof(asn_DEF_RANAP_SNA_Access_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_SNA_Access_Information_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SNA_Access_Information_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SNA_Access_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_SNA_Access_Information_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SNA_Access_Information_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_SNA_Access_Information_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SNA-Access-Information.h b/src/ranap/RANAP_SNA-Access-Information.h
new file mode 100644
index 0000000..3b5d32e
--- /dev/null
+++ b/src/ranap/RANAP_SNA-Access-Information.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SNA_Access_Information_H_
+#define	_RANAP_SNA_Access_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_AuthorisedPLMNs.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SNA-Access-Information */
+typedef struct RANAP_SNA_Access_Information {
+	RANAP_AuthorisedPLMNs_t	 authorisedPLMNs;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SNA_Access_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SNA_Access_Information;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SNA_Access_Information_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SNAC.c b/src/ranap/RANAP_SNAC.c
new file mode 100644
index 0000000..d8003ef
--- /dev/null
+++ b/src/ranap/RANAP_SNAC.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SNAC.h"
+
+int
+RANAP_SNAC_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 65535l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_SNAC_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_SNAC_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_SNAC_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_SNAC_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SNAC_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SNAC_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_SNAC_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_SNAC_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SNAC_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SNAC_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_SNAC_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_SNAC_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SNAC_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SNAC_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SNAC_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_SNAC_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SNAC_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_SNAC_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SNAC_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_SNAC_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SNAC_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_SNAC_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SNAC_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SNAC = {
+	"RANAP_SNAC",
+	"RANAP_SNAC",
+	RANAP_SNAC_free,
+	RANAP_SNAC_print,
+	RANAP_SNAC_constraint,
+	RANAP_SNAC_decode_ber,
+	RANAP_SNAC_encode_der,
+	RANAP_SNAC_decode_xer,
+	RANAP_SNAC_encode_xer,
+	RANAP_SNAC_decode_uper,
+	RANAP_SNAC_encode_uper,
+	RANAP_SNAC_decode_aper,
+	RANAP_SNAC_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SNAC_tags_1,
+	sizeof(asn_DEF_RANAP_SNAC_tags_1)
+		/sizeof(asn_DEF_RANAP_SNAC_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SNAC_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SNAC_tags_1)
+		/sizeof(asn_DEF_RANAP_SNAC_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_SNAC_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_SNAC.h b/src/ranap/RANAP_SNAC.h
new file mode 100644
index 0000000..e6e06f9
--- /dev/null
+++ b/src/ranap/RANAP_SNAC.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SNAC_H_
+#define	_RANAP_SNAC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SNAC */
+typedef long	 RANAP_SNAC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SNAC;
+asn_struct_free_f RANAP_SNAC_free;
+asn_struct_print_f RANAP_SNAC_print;
+asn_constr_check_f RANAP_SNAC_constraint;
+ber_type_decoder_f RANAP_SNAC_decode_ber;
+der_type_encoder_f RANAP_SNAC_encode_der;
+xer_type_decoder_f RANAP_SNAC_decode_xer;
+xer_type_encoder_f RANAP_SNAC_encode_xer;
+per_type_decoder_f RANAP_SNAC_decode_uper;
+per_type_encoder_f RANAP_SNAC_encode_uper;
+per_type_decoder_f RANAP_SNAC_decode_aper;
+per_type_encoder_f RANAP_SNAC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SNAC_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SRB-ID.c b/src/ranap/RANAP_SRB-ID.c
new file mode 100644
index 0000000..3ea4c37
--- /dev/null
+++ b/src/ranap/RANAP_SRB-ID.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SRB-ID.h"
+
+int
+RANAP_SRB_ID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 32l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_SRB_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_SRB_ID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_SRB_ID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_SRB_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SRB_ID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SRB_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_SRB_ID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_SRB_ID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SRB_ID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SRB_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_SRB_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_SRB_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SRB_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SRB_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SRB_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_SRB_ID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SRB_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_SRB_ID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SRB_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_SRB_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SRB_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_SRB_ID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 5,  5,  1l,  32l }	/* (1..32) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SRB_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SRB_ID = {
+	"RANAP_SRB-ID",
+	"RANAP_SRB-ID",
+	RANAP_SRB_ID_free,
+	RANAP_SRB_ID_print,
+	RANAP_SRB_ID_constraint,
+	RANAP_SRB_ID_decode_ber,
+	RANAP_SRB_ID_encode_der,
+	RANAP_SRB_ID_decode_xer,
+	RANAP_SRB_ID_encode_xer,
+	RANAP_SRB_ID_decode_uper,
+	RANAP_SRB_ID_encode_uper,
+	RANAP_SRB_ID_decode_aper,
+	RANAP_SRB_ID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SRB_ID_tags_1,
+	sizeof(asn_DEF_RANAP_SRB_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_SRB_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SRB_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SRB_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_SRB_ID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_SRB_ID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_SRB-ID.h b/src/ranap/RANAP_SRB-ID.h
new file mode 100644
index 0000000..1b86a32
--- /dev/null
+++ b/src/ranap/RANAP_SRB-ID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SRB_ID_H_
+#define	_RANAP_SRB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SRB-ID */
+typedef long	 RANAP_SRB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SRB_ID;
+asn_struct_free_f RANAP_SRB_ID_free;
+asn_struct_print_f RANAP_SRB_ID_print;
+asn_constr_check_f RANAP_SRB_ID_constraint;
+ber_type_decoder_f RANAP_SRB_ID_decode_ber;
+der_type_encoder_f RANAP_SRB_ID_encode_der;
+xer_type_decoder_f RANAP_SRB_ID_decode_xer;
+xer_type_encoder_f RANAP_SRB_ID_encode_xer;
+per_type_decoder_f RANAP_SRB_ID_decode_uper;
+per_type_encoder_f RANAP_SRB_ID_encode_uper;
+per_type_decoder_f RANAP_SRB_ID_decode_aper;
+per_type_encoder_f RANAP_SRB_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SRB_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SRB-TrCH-Mapping.c b/src/ranap/RANAP_SRB-TrCH-Mapping.c
new file mode 100644
index 0000000..0c9319d
--- /dev/null
+++ b/src/ranap/RANAP_SRB-TrCH-Mapping.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SRB-TrCH-Mapping.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_SRB_TrCH_Mapping_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 3,  3,  1l,  8l }	/* (SIZE(1..8)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_SRB_TrCH_Mapping_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_SRB_TrCH_MappingItem,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SRB_TrCH_Mapping_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_SRB_TrCH_Mapping_specs_1 = {
+	sizeof(struct RANAP_SRB_TrCH_Mapping),
+	offsetof(struct RANAP_SRB_TrCH_Mapping, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SRB_TrCH_Mapping = {
+	"RANAP_SRB-TrCH-Mapping",
+	"RANAP_SRB-TrCH-Mapping",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SRB_TrCH_Mapping_tags_1,
+	sizeof(asn_DEF_RANAP_SRB_TrCH_Mapping_tags_1)
+		/sizeof(asn_DEF_RANAP_SRB_TrCH_Mapping_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SRB_TrCH_Mapping_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SRB_TrCH_Mapping_tags_1)
+		/sizeof(asn_DEF_RANAP_SRB_TrCH_Mapping_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_SRB_TrCH_Mapping_constr_1,
+	asn_MBR_RANAP_SRB_TrCH_Mapping_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_SRB_TrCH_Mapping_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SRB-TrCH-Mapping.h b/src/ranap/RANAP_SRB-TrCH-Mapping.h
new file mode 100644
index 0000000..52ce11b
--- /dev/null
+++ b/src/ranap/RANAP_SRB-TrCH-Mapping.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SRB_TrCH_Mapping_H_
+#define	_RANAP_SRB_TrCH_Mapping_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_SRB-TrCH-MappingItem.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SRB-TrCH-Mapping */
+typedef struct RANAP_SRB_TrCH_Mapping {
+	A_SEQUENCE_OF(RANAP_SRB_TrCH_MappingItem_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SRB_TrCH_Mapping_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SRB_TrCH_Mapping;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SRB_TrCH_Mapping_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SRB-TrCH-MappingItem.c b/src/ranap/RANAP_SRB-TrCH-MappingItem.c
new file mode 100644
index 0000000..80d6994
--- /dev/null
+++ b/src/ranap/RANAP_SRB-TrCH-MappingItem.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SRB-TrCH-MappingItem.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_SRB_TrCH_MappingItem_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SRB_TrCH_MappingItem, sRB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_SRB_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"sRB-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SRB_TrCH_MappingItem, trCH_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TrCH_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"trCH-ID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_SRB_TrCH_MappingItem, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_SRB_TrCH_MappingItem_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_SRB_TrCH_MappingItem_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SRB_TrCH_MappingItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sRB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* trCH-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SRB_TrCH_MappingItem_specs_1 = {
+	sizeof(struct RANAP_SRB_TrCH_MappingItem),
+	offsetof(struct RANAP_SRB_TrCH_MappingItem, _asn_ctx),
+	asn_MAP_RANAP_SRB_TrCH_MappingItem_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_SRB_TrCH_MappingItem_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SRB_TrCH_MappingItem = {
+	"RANAP_SRB-TrCH-MappingItem",
+	"RANAP_SRB-TrCH-MappingItem",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SRB_TrCH_MappingItem_tags_1,
+	sizeof(asn_DEF_RANAP_SRB_TrCH_MappingItem_tags_1)
+		/sizeof(asn_DEF_RANAP_SRB_TrCH_MappingItem_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SRB_TrCH_MappingItem_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SRB_TrCH_MappingItem_tags_1)
+		/sizeof(asn_DEF_RANAP_SRB_TrCH_MappingItem_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SRB_TrCH_MappingItem_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_SRB_TrCH_MappingItem_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SRB-TrCH-MappingItem.h b/src/ranap/RANAP_SRB-TrCH-MappingItem.h
new file mode 100644
index 0000000..48f43e3
--- /dev/null
+++ b/src/ranap/RANAP_SRB-TrCH-MappingItem.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SRB_TrCH_MappingItem_H_
+#define	_RANAP_SRB_TrCH_MappingItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_SRB-ID.h"
+#include "RANAP_TrCH-ID.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SRB-TrCH-MappingItem */
+typedef struct RANAP_SRB_TrCH_MappingItem {
+	RANAP_SRB_ID_t	 sRB_ID;
+	RANAP_TrCH_ID_t	 trCH_ID;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SRB_TrCH_MappingItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SRB_TrCH_MappingItem;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SRB_TrCH_MappingItem_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SRNS-ContextRequest.c b/src/ranap/RANAP_SRNS-ContextRequest.c
new file mode 100644
index 0000000..9531323
--- /dev/null
+++ b/src/ranap/RANAP_SRNS-ContextRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_SRNS-ContextRequest.h"
+
+static int
+memb_sRNS_ContextRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_sRNS_ContextRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_sRNS_ContextRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_sRNS_ContextRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_sRNS_ContextRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_sRNS_ContextRequest_ies_specs_2 = {
+	sizeof(struct sRNS_ContextRequest_ies),
+	offsetof(struct sRNS_ContextRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_sRNS_ContextRequest_ies_2 = {
+	"sRNS-ContextRequest-ies",
+	"sRNS-ContextRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_sRNS_ContextRequest_ies_tags_2,
+	sizeof(asn_DEF_sRNS_ContextRequest_ies_tags_2)
+		/sizeof(asn_DEF_sRNS_ContextRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_sRNS_ContextRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_sRNS_ContextRequest_ies_tags_2)
+		/sizeof(asn_DEF_sRNS_ContextRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_sRNS_ContextRequest_ies_constr_2,
+	asn_MBR_sRNS_ContextRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_sRNS_ContextRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_SRNS_ContextRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SRNS_ContextRequest, sRNS_ContextRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_sRNS_ContextRequest_ies_2,
+		memb_sRNS_ContextRequest_ies_constraint_1,
+		&asn_PER_memb_sRNS_ContextRequest_ies_constr_2,
+		0,
+		"sRNS-ContextRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SRNS_ContextRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SRNS_ContextRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* sRNS-ContextRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SRNS_ContextRequest_specs_1 = {
+	sizeof(struct RANAP_SRNS_ContextRequest),
+	offsetof(struct RANAP_SRNS_ContextRequest, _asn_ctx),
+	asn_MAP_RANAP_SRNS_ContextRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SRNS_ContextRequest = {
+	"RANAP_SRNS-ContextRequest",
+	"RANAP_SRNS-ContextRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SRNS_ContextRequest_tags_1,
+	sizeof(asn_DEF_RANAP_SRNS_ContextRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_SRNS_ContextRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SRNS_ContextRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SRNS_ContextRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_SRNS_ContextRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SRNS_ContextRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_SRNS_ContextRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SRNS-ContextRequest.h b/src/ranap/RANAP_SRNS-ContextRequest.h
new file mode 100644
index 0000000..a9e57ca
--- /dev/null
+++ b/src/ranap/RANAP_SRNS-ContextRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_SRNS_ContextRequest_H_
+#define	_RANAP_SRNS_ContextRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SRNS-ContextRequest */
+typedef struct RANAP_SRNS_ContextRequest {
+	struct sRNS_ContextRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} sRNS_ContextRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SRNS_ContextRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SRNS_ContextRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SRNS_ContextRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SRNS-ContextResponse.c b/src/ranap/RANAP_SRNS-ContextResponse.c
new file mode 100644
index 0000000..601b5ad
--- /dev/null
+++ b/src/ranap/RANAP_SRNS-ContextResponse.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_SRNS-ContextResponse.h"
+
+static int
+memb_sRNS_ContextResponse_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_sRNS_ContextResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_sRNS_ContextResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_sRNS_ContextResponse_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_sRNS_ContextResponse_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_sRNS_ContextResponse_ies_specs_2 = {
+	sizeof(struct sRNS_ContextResponse_ies),
+	offsetof(struct sRNS_ContextResponse_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_sRNS_ContextResponse_ies_2 = {
+	"sRNS-ContextResponse-ies",
+	"sRNS-ContextResponse-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_sRNS_ContextResponse_ies_tags_2,
+	sizeof(asn_DEF_sRNS_ContextResponse_ies_tags_2)
+		/sizeof(asn_DEF_sRNS_ContextResponse_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_sRNS_ContextResponse_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_sRNS_ContextResponse_ies_tags_2)
+		/sizeof(asn_DEF_sRNS_ContextResponse_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_sRNS_ContextResponse_ies_constr_2,
+	asn_MBR_sRNS_ContextResponse_ies_2,
+	1,	/* Single element */
+	&asn_SPC_sRNS_ContextResponse_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_SRNS_ContextResponse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SRNS_ContextResponse, sRNS_ContextResponse_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_sRNS_ContextResponse_ies_2,
+		memb_sRNS_ContextResponse_ies_constraint_1,
+		&asn_PER_memb_sRNS_ContextResponse_ies_constr_2,
+		0,
+		"sRNS-ContextResponse-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SRNS_ContextResponse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SRNS_ContextResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* sRNS-ContextResponse-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SRNS_ContextResponse_specs_1 = {
+	sizeof(struct RANAP_SRNS_ContextResponse),
+	offsetof(struct RANAP_SRNS_ContextResponse, _asn_ctx),
+	asn_MAP_RANAP_SRNS_ContextResponse_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SRNS_ContextResponse = {
+	"RANAP_SRNS-ContextResponse",
+	"RANAP_SRNS-ContextResponse",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SRNS_ContextResponse_tags_1,
+	sizeof(asn_DEF_RANAP_SRNS_ContextResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_SRNS_ContextResponse_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SRNS_ContextResponse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SRNS_ContextResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_SRNS_ContextResponse_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SRNS_ContextResponse_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_SRNS_ContextResponse_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SRNS-ContextResponse.h b/src/ranap/RANAP_SRNS-ContextResponse.h
new file mode 100644
index 0000000..53e210a
--- /dev/null
+++ b/src/ranap/RANAP_SRNS-ContextResponse.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_SRNS_ContextResponse_H_
+#define	_RANAP_SRNS_ContextResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SRNS-ContextResponse */
+typedef struct RANAP_SRNS_ContextResponse {
+	struct sRNS_ContextResponse_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} sRNS_ContextResponse_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SRNS_ContextResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SRNS_ContextResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SRNS_ContextResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SRNS-DataForwardCommand.c b/src/ranap/RANAP_SRNS-DataForwardCommand.c
new file mode 100644
index 0000000..4b3800d
--- /dev/null
+++ b/src/ranap/RANAP_SRNS-DataForwardCommand.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_SRNS-DataForwardCommand.h"
+
+static int
+memb_sRNS_DataForwardCommand_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_sRNS_DataForwardCommand_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_sRNS_DataForwardCommand_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_sRNS_DataForwardCommand_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_sRNS_DataForwardCommand_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_sRNS_DataForwardCommand_ies_specs_2 = {
+	sizeof(struct sRNS_DataForwardCommand_ies),
+	offsetof(struct sRNS_DataForwardCommand_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_sRNS_DataForwardCommand_ies_2 = {
+	"sRNS-DataForwardCommand-ies",
+	"sRNS-DataForwardCommand-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_sRNS_DataForwardCommand_ies_tags_2,
+	sizeof(asn_DEF_sRNS_DataForwardCommand_ies_tags_2)
+		/sizeof(asn_DEF_sRNS_DataForwardCommand_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_sRNS_DataForwardCommand_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_sRNS_DataForwardCommand_ies_tags_2)
+		/sizeof(asn_DEF_sRNS_DataForwardCommand_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_sRNS_DataForwardCommand_ies_constr_2,
+	asn_MBR_sRNS_DataForwardCommand_ies_2,
+	1,	/* Single element */
+	&asn_SPC_sRNS_DataForwardCommand_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_SRNS_DataForwardCommand_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SRNS_DataForwardCommand, sRNS_DataForwardCommand_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_sRNS_DataForwardCommand_ies_2,
+		memb_sRNS_DataForwardCommand_ies_constraint_1,
+		&asn_PER_memb_sRNS_DataForwardCommand_ies_constr_2,
+		0,
+		"sRNS-DataForwardCommand-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SRNS_DataForwardCommand_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SRNS_DataForwardCommand_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* sRNS-DataForwardCommand-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SRNS_DataForwardCommand_specs_1 = {
+	sizeof(struct RANAP_SRNS_DataForwardCommand),
+	offsetof(struct RANAP_SRNS_DataForwardCommand, _asn_ctx),
+	asn_MAP_RANAP_SRNS_DataForwardCommand_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SRNS_DataForwardCommand = {
+	"RANAP_SRNS-DataForwardCommand",
+	"RANAP_SRNS-DataForwardCommand",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SRNS_DataForwardCommand_tags_1,
+	sizeof(asn_DEF_RANAP_SRNS_DataForwardCommand_tags_1)
+		/sizeof(asn_DEF_RANAP_SRNS_DataForwardCommand_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SRNS_DataForwardCommand_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SRNS_DataForwardCommand_tags_1)
+		/sizeof(asn_DEF_RANAP_SRNS_DataForwardCommand_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SRNS_DataForwardCommand_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_SRNS_DataForwardCommand_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SRNS-DataForwardCommand.h b/src/ranap/RANAP_SRNS-DataForwardCommand.h
new file mode 100644
index 0000000..14a9f49
--- /dev/null
+++ b/src/ranap/RANAP_SRNS-DataForwardCommand.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_SRNS_DataForwardCommand_H_
+#define	_RANAP_SRNS_DataForwardCommand_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SRNS-DataForwardCommand */
+typedef struct RANAP_SRNS_DataForwardCommand {
+	struct sRNS_DataForwardCommand_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} sRNS_DataForwardCommand_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SRNS_DataForwardCommand_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SRNS_DataForwardCommand;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SRNS_DataForwardCommand_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SRVCC-CSKeysRequest.c b/src/ranap/RANAP_SRVCC-CSKeysRequest.c
new file mode 100644
index 0000000..28361bb
--- /dev/null
+++ b/src/ranap/RANAP_SRVCC-CSKeysRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_SRVCC-CSKeysRequest.h"
+
+static int
+memb_sRVCC_CSKeysRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_sRVCC_CSKeysRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_sRVCC_CSKeysRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_sRVCC_CSKeysRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_sRVCC_CSKeysRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_sRVCC_CSKeysRequest_ies_specs_2 = {
+	sizeof(struct sRVCC_CSKeysRequest_ies),
+	offsetof(struct sRVCC_CSKeysRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_sRVCC_CSKeysRequest_ies_2 = {
+	"sRVCC-CSKeysRequest-ies",
+	"sRVCC-CSKeysRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_sRVCC_CSKeysRequest_ies_tags_2,
+	sizeof(asn_DEF_sRVCC_CSKeysRequest_ies_tags_2)
+		/sizeof(asn_DEF_sRVCC_CSKeysRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_sRVCC_CSKeysRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_sRVCC_CSKeysRequest_ies_tags_2)
+		/sizeof(asn_DEF_sRVCC_CSKeysRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_sRVCC_CSKeysRequest_ies_constr_2,
+	asn_MBR_sRVCC_CSKeysRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_sRVCC_CSKeysRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_SRVCC_CSKeysRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SRVCC_CSKeysRequest, sRVCC_CSKeysRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_sRVCC_CSKeysRequest_ies_2,
+		memb_sRVCC_CSKeysRequest_ies_constraint_1,
+		&asn_PER_memb_sRVCC_CSKeysRequest_ies_constr_2,
+		0,
+		"sRVCC-CSKeysRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SRVCC_CSKeysRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SRVCC_CSKeysRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* sRVCC-CSKeysRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SRVCC_CSKeysRequest_specs_1 = {
+	sizeof(struct RANAP_SRVCC_CSKeysRequest),
+	offsetof(struct RANAP_SRVCC_CSKeysRequest, _asn_ctx),
+	asn_MAP_RANAP_SRVCC_CSKeysRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SRVCC_CSKeysRequest = {
+	"RANAP_SRVCC-CSKeysRequest",
+	"RANAP_SRVCC-CSKeysRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SRVCC_CSKeysRequest_tags_1,
+	sizeof(asn_DEF_RANAP_SRVCC_CSKeysRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_SRVCC_CSKeysRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SRVCC_CSKeysRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SRVCC_CSKeysRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_SRVCC_CSKeysRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SRVCC_CSKeysRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_SRVCC_CSKeysRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SRVCC-CSKeysRequest.h b/src/ranap/RANAP_SRVCC-CSKeysRequest.h
new file mode 100644
index 0000000..aa64d72
--- /dev/null
+++ b/src/ranap/RANAP_SRVCC-CSKeysRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_SRVCC_CSKeysRequest_H_
+#define	_RANAP_SRVCC_CSKeysRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SRVCC-CSKeysRequest */
+typedef struct RANAP_SRVCC_CSKeysRequest {
+	struct sRVCC_CSKeysRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} sRVCC_CSKeysRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SRVCC_CSKeysRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SRVCC_CSKeysRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SRVCC_CSKeysRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SRVCC-CSKeysResponse.c b/src/ranap/RANAP_SRVCC-CSKeysResponse.c
new file mode 100644
index 0000000..89ec1b3
--- /dev/null
+++ b/src/ranap/RANAP_SRVCC-CSKeysResponse.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_SRVCC-CSKeysResponse.h"
+
+static int
+memb_sRVCC_CSKeysResponse_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_sRVCC_CSKeysResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_sRVCC_CSKeysResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_sRVCC_CSKeysResponse_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_sRVCC_CSKeysResponse_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_sRVCC_CSKeysResponse_ies_specs_2 = {
+	sizeof(struct sRVCC_CSKeysResponse_ies),
+	offsetof(struct sRVCC_CSKeysResponse_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_sRVCC_CSKeysResponse_ies_2 = {
+	"sRVCC-CSKeysResponse-ies",
+	"sRVCC-CSKeysResponse-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_sRVCC_CSKeysResponse_ies_tags_2,
+	sizeof(asn_DEF_sRVCC_CSKeysResponse_ies_tags_2)
+		/sizeof(asn_DEF_sRVCC_CSKeysResponse_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_sRVCC_CSKeysResponse_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_sRVCC_CSKeysResponse_ies_tags_2)
+		/sizeof(asn_DEF_sRVCC_CSKeysResponse_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_sRVCC_CSKeysResponse_ies_constr_2,
+	asn_MBR_sRVCC_CSKeysResponse_ies_2,
+	1,	/* Single element */
+	&asn_SPC_sRVCC_CSKeysResponse_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_SRVCC_CSKeysResponse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SRVCC_CSKeysResponse, sRVCC_CSKeysResponse_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_sRVCC_CSKeysResponse_ies_2,
+		memb_sRVCC_CSKeysResponse_ies_constraint_1,
+		&asn_PER_memb_sRVCC_CSKeysResponse_ies_constr_2,
+		0,
+		"sRVCC-CSKeysResponse-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SRVCC_CSKeysResponse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SRVCC_CSKeysResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* sRVCC-CSKeysResponse-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SRVCC_CSKeysResponse_specs_1 = {
+	sizeof(struct RANAP_SRVCC_CSKeysResponse),
+	offsetof(struct RANAP_SRVCC_CSKeysResponse, _asn_ctx),
+	asn_MAP_RANAP_SRVCC_CSKeysResponse_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SRVCC_CSKeysResponse = {
+	"RANAP_SRVCC-CSKeysResponse",
+	"RANAP_SRVCC-CSKeysResponse",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SRVCC_CSKeysResponse_tags_1,
+	sizeof(asn_DEF_RANAP_SRVCC_CSKeysResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_SRVCC_CSKeysResponse_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SRVCC_CSKeysResponse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SRVCC_CSKeysResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_SRVCC_CSKeysResponse_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SRVCC_CSKeysResponse_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_SRVCC_CSKeysResponse_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SRVCC-CSKeysResponse.h b/src/ranap/RANAP_SRVCC-CSKeysResponse.h
new file mode 100644
index 0000000..b782866
--- /dev/null
+++ b/src/ranap/RANAP_SRVCC-CSKeysResponse.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_SRVCC_CSKeysResponse_H_
+#define	_RANAP_SRVCC_CSKeysResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SRVCC-CSKeysResponse */
+typedef struct RANAP_SRVCC_CSKeysResponse {
+	struct sRVCC_CSKeysResponse_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} sRVCC_CSKeysResponse_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SRVCC_CSKeysResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SRVCC_CSKeysResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SRVCC_CSKeysResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SRVCC-HO-Indication.c b/src/ranap/RANAP_SRVCC-HO-Indication.c
new file mode 100644
index 0000000..7a515c9
--- /dev/null
+++ b/src/ranap/RANAP_SRVCC-HO-Indication.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SRVCC-HO-Indication.h"
+
+int
+RANAP_SRVCC_HO_Indication_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_SRVCC_HO_Indication_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_SRVCC_HO_Indication_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_SRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_SRVCC_HO_Indication_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SRVCC_HO_Indication_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_SRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_SRVCC_HO_Indication_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SRVCC_HO_Indication_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_SRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_SRVCC_HO_Indication_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SRVCC_HO_Indication_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_SRVCC_HO_Indication_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_SRVCC_HO_Indication_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_SRVCC_HO_Indication_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SRVCC_HO_Indication_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_SRVCC_HO_Indication_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_SRVCC_HO_Indication_value2enum_1[] = {
+	{ 0,	9,	"ps-and-cs" },
+	{ 1,	7,	"cs-only" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_SRVCC_HO_Indication_enum2value_1[] = {
+	1,	/* cs-only(1) */
+	0	/* ps-and-cs(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_SRVCC_HO_Indication_specs_1 = {
+	asn_MAP_RANAP_SRVCC_HO_Indication_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_SRVCC_HO_Indication_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SRVCC_HO_Indication_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SRVCC_HO_Indication = {
+	"RANAP_SRVCC-HO-Indication",
+	"RANAP_SRVCC-HO-Indication",
+	RANAP_SRVCC_HO_Indication_free,
+	RANAP_SRVCC_HO_Indication_print,
+	RANAP_SRVCC_HO_Indication_constraint,
+	RANAP_SRVCC_HO_Indication_decode_ber,
+	RANAP_SRVCC_HO_Indication_encode_der,
+	RANAP_SRVCC_HO_Indication_decode_xer,
+	RANAP_SRVCC_HO_Indication_encode_xer,
+	RANAP_SRVCC_HO_Indication_decode_uper,
+	RANAP_SRVCC_HO_Indication_encode_uper,
+	RANAP_SRVCC_HO_Indication_decode_aper,
+	RANAP_SRVCC_HO_Indication_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SRVCC_HO_Indication_tags_1,
+	sizeof(asn_DEF_RANAP_SRVCC_HO_Indication_tags_1)
+		/sizeof(asn_DEF_RANAP_SRVCC_HO_Indication_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SRVCC_HO_Indication_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SRVCC_HO_Indication_tags_1)
+		/sizeof(asn_DEF_RANAP_SRVCC_HO_Indication_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_SRVCC_HO_Indication_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_SRVCC_HO_Indication_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SRVCC-HO-Indication.h b/src/ranap/RANAP_SRVCC-HO-Indication.h
new file mode 100644
index 0000000..36caa2d
--- /dev/null
+++ b/src/ranap/RANAP_SRVCC-HO-Indication.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SRVCC_HO_Indication_H_
+#define	_RANAP_SRVCC_HO_Indication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_SRVCC_HO_Indication {
+	RANAP_SRVCC_HO_Indication_ps_and_cs	= 0,
+	RANAP_SRVCC_HO_Indication_cs_only	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_SRVCC_HO_Indication;
+
+/* RANAP_SRVCC-HO-Indication */
+typedef long	 RANAP_SRVCC_HO_Indication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SRVCC_HO_Indication;
+asn_struct_free_f RANAP_SRVCC_HO_Indication_free;
+asn_struct_print_f RANAP_SRVCC_HO_Indication_print;
+asn_constr_check_f RANAP_SRVCC_HO_Indication_constraint;
+ber_type_decoder_f RANAP_SRVCC_HO_Indication_decode_ber;
+der_type_encoder_f RANAP_SRVCC_HO_Indication_encode_der;
+xer_type_decoder_f RANAP_SRVCC_HO_Indication_decode_xer;
+xer_type_encoder_f RANAP_SRVCC_HO_Indication_encode_xer;
+per_type_decoder_f RANAP_SRVCC_HO_Indication_decode_uper;
+per_type_encoder_f RANAP_SRVCC_HO_Indication_encode_uper;
+per_type_decoder_f RANAP_SRVCC_HO_Indication_decode_aper;
+per_type_encoder_f RANAP_SRVCC_HO_Indication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SRVCC_HO_Indication_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SRVCC-Information.c b/src/ranap/RANAP_SRVCC-Information.c
new file mode 100644
index 0000000..c84ac5a
--- /dev/null
+++ b/src/ranap/RANAP_SRVCC-Information.c
@@ -0,0 +1,109 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SRVCC-Information.h"
+
+static int
+memb_nonce_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 128l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_nonce_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  128l,  128l }	/* (SIZE(128..128)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_SRVCC_Information_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SRVCC_Information, nonce),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		memb_nonce_constraint_1,
+		&asn_PER_memb_nonce_constr_2,
+		0,
+		"nonce"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_SRVCC_Information, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_SRVCC_Information_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_SRVCC_Information_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SRVCC_Information_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nonce */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SRVCC_Information_specs_1 = {
+	sizeof(struct RANAP_SRVCC_Information),
+	offsetof(struct RANAP_SRVCC_Information, _asn_ctx),
+	asn_MAP_RANAP_SRVCC_Information_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_SRVCC_Information_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SRVCC_Information = {
+	"RANAP_SRVCC-Information",
+	"RANAP_SRVCC-Information",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SRVCC_Information_tags_1,
+	sizeof(asn_DEF_RANAP_SRVCC_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_SRVCC_Information_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SRVCC_Information_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SRVCC_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_SRVCC_Information_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SRVCC_Information_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_SRVCC_Information_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SRVCC-Information.h b/src/ranap/RANAP_SRVCC-Information.h
new file mode 100644
index 0000000..c5022b7
--- /dev/null
+++ b/src/ranap/RANAP_SRVCC-Information.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SRVCC_Information_H_
+#define	_RANAP_SRVCC_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SRVCC-Information */
+typedef struct RANAP_SRVCC_Information {
+	BIT_STRING_t	 nonce;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SRVCC_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SRVCC_Information;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SRVCC_Information_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SRVCC-Operation-Possible.c b/src/ranap/RANAP_SRVCC-Operation-Possible.c
new file mode 100644
index 0000000..cf46149
--- /dev/null
+++ b/src/ranap/RANAP_SRVCC-Operation-Possible.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SRVCC-Operation-Possible.h"
+
+int
+RANAP_SRVCC_Operation_Possible_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_SRVCC_Operation_Possible_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_SRVCC_Operation_Possible_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_SRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_SRVCC_Operation_Possible_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SRVCC_Operation_Possible_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_SRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_SRVCC_Operation_Possible_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SRVCC_Operation_Possible_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_SRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_SRVCC_Operation_Possible_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SRVCC_Operation_Possible_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_SRVCC_Operation_Possible_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_SRVCC_Operation_Possible_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_SRVCC_Operation_Possible_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SRVCC_Operation_Possible_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_SRVCC_Operation_Possible_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_SRVCC_Operation_Possible_value2enum_1[] = {
+	{ 0,	14,	"srvcc-possible" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_SRVCC_Operation_Possible_enum2value_1[] = {
+	0	/* srvcc-possible(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_SRVCC_Operation_Possible_specs_1 = {
+	asn_MAP_RANAP_SRVCC_Operation_Possible_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_SRVCC_Operation_Possible_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SRVCC_Operation_Possible_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SRVCC_Operation_Possible = {
+	"RANAP_SRVCC-Operation-Possible",
+	"RANAP_SRVCC-Operation-Possible",
+	RANAP_SRVCC_Operation_Possible_free,
+	RANAP_SRVCC_Operation_Possible_print,
+	RANAP_SRVCC_Operation_Possible_constraint,
+	RANAP_SRVCC_Operation_Possible_decode_ber,
+	RANAP_SRVCC_Operation_Possible_encode_der,
+	RANAP_SRVCC_Operation_Possible_decode_xer,
+	RANAP_SRVCC_Operation_Possible_encode_xer,
+	RANAP_SRVCC_Operation_Possible_decode_uper,
+	RANAP_SRVCC_Operation_Possible_encode_uper,
+	RANAP_SRVCC_Operation_Possible_decode_aper,
+	RANAP_SRVCC_Operation_Possible_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SRVCC_Operation_Possible_tags_1,
+	sizeof(asn_DEF_RANAP_SRVCC_Operation_Possible_tags_1)
+		/sizeof(asn_DEF_RANAP_SRVCC_Operation_Possible_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SRVCC_Operation_Possible_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SRVCC_Operation_Possible_tags_1)
+		/sizeof(asn_DEF_RANAP_SRVCC_Operation_Possible_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_SRVCC_Operation_Possible_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_SRVCC_Operation_Possible_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SRVCC-Operation-Possible.h b/src/ranap/RANAP_SRVCC-Operation-Possible.h
new file mode 100644
index 0000000..c839c8b
--- /dev/null
+++ b/src/ranap/RANAP_SRVCC-Operation-Possible.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SRVCC_Operation_Possible_H_
+#define	_RANAP_SRVCC_Operation_Possible_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_SRVCC_Operation_Possible {
+	RANAP_SRVCC_Operation_Possible_srvcc_possible	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_SRVCC_Operation_Possible;
+
+/* RANAP_SRVCC-Operation-Possible */
+typedef long	 RANAP_SRVCC_Operation_Possible_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SRVCC_Operation_Possible;
+asn_struct_free_f RANAP_SRVCC_Operation_Possible_free;
+asn_struct_print_f RANAP_SRVCC_Operation_Possible_print;
+asn_constr_check_f RANAP_SRVCC_Operation_Possible_constraint;
+ber_type_decoder_f RANAP_SRVCC_Operation_Possible_decode_ber;
+der_type_encoder_f RANAP_SRVCC_Operation_Possible_encode_der;
+xer_type_decoder_f RANAP_SRVCC_Operation_Possible_decode_xer;
+xer_type_encoder_f RANAP_SRVCC_Operation_Possible_encode_xer;
+per_type_decoder_f RANAP_SRVCC_Operation_Possible_decode_uper;
+per_type_encoder_f RANAP_SRVCC_Operation_Possible_encode_uper;
+per_type_decoder_f RANAP_SRVCC_Operation_Possible_decode_aper;
+per_type_encoder_f RANAP_SRVCC_Operation_Possible_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SRVCC_Operation_Possible_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SecurityModeCommand.c b/src/ranap/RANAP_SecurityModeCommand.c
new file mode 100644
index 0000000..858ad7e
--- /dev/null
+++ b/src/ranap/RANAP_SecurityModeCommand.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_SecurityModeCommand.h"
+
+static int
+memb_securityModeCommand_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_securityModeCommand_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_securityModeCommand_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_securityModeCommand_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_securityModeCommand_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_securityModeCommand_ies_specs_2 = {
+	sizeof(struct securityModeCommand_ies),
+	offsetof(struct securityModeCommand_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_securityModeCommand_ies_2 = {
+	"securityModeCommand-ies",
+	"securityModeCommand-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_securityModeCommand_ies_tags_2,
+	sizeof(asn_DEF_securityModeCommand_ies_tags_2)
+		/sizeof(asn_DEF_securityModeCommand_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_securityModeCommand_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_securityModeCommand_ies_tags_2)
+		/sizeof(asn_DEF_securityModeCommand_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_securityModeCommand_ies_constr_2,
+	asn_MBR_securityModeCommand_ies_2,
+	1,	/* Single element */
+	&asn_SPC_securityModeCommand_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_SecurityModeCommand_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SecurityModeCommand, securityModeCommand_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_securityModeCommand_ies_2,
+		memb_securityModeCommand_ies_constraint_1,
+		&asn_PER_memb_securityModeCommand_ies_constr_2,
+		0,
+		"securityModeCommand-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SecurityModeCommand_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SecurityModeCommand_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* securityModeCommand-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SecurityModeCommand_specs_1 = {
+	sizeof(struct RANAP_SecurityModeCommand),
+	offsetof(struct RANAP_SecurityModeCommand, _asn_ctx),
+	asn_MAP_RANAP_SecurityModeCommand_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SecurityModeCommand = {
+	"RANAP_SecurityModeCommand",
+	"RANAP_SecurityModeCommand",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SecurityModeCommand_tags_1,
+	sizeof(asn_DEF_RANAP_SecurityModeCommand_tags_1)
+		/sizeof(asn_DEF_RANAP_SecurityModeCommand_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SecurityModeCommand_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SecurityModeCommand_tags_1)
+		/sizeof(asn_DEF_RANAP_SecurityModeCommand_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SecurityModeCommand_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_SecurityModeCommand_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SecurityModeCommand.h b/src/ranap/RANAP_SecurityModeCommand.h
new file mode 100644
index 0000000..2784c19
--- /dev/null
+++ b/src/ranap/RANAP_SecurityModeCommand.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_SecurityModeCommand_H_
+#define	_RANAP_SecurityModeCommand_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SecurityModeCommand */
+typedef struct RANAP_SecurityModeCommand {
+	struct securityModeCommand_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} securityModeCommand_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SecurityModeCommand_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SecurityModeCommand;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SecurityModeCommand_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SecurityModeComplete.c b/src/ranap/RANAP_SecurityModeComplete.c
new file mode 100644
index 0000000..1fab6c5
--- /dev/null
+++ b/src/ranap/RANAP_SecurityModeComplete.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_SecurityModeComplete.h"
+
+static int
+memb_securityModeComplete_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_securityModeComplete_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_securityModeComplete_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_securityModeComplete_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_securityModeComplete_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_securityModeComplete_ies_specs_2 = {
+	sizeof(struct securityModeComplete_ies),
+	offsetof(struct securityModeComplete_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_securityModeComplete_ies_2 = {
+	"securityModeComplete-ies",
+	"securityModeComplete-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_securityModeComplete_ies_tags_2,
+	sizeof(asn_DEF_securityModeComplete_ies_tags_2)
+		/sizeof(asn_DEF_securityModeComplete_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_securityModeComplete_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_securityModeComplete_ies_tags_2)
+		/sizeof(asn_DEF_securityModeComplete_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_securityModeComplete_ies_constr_2,
+	asn_MBR_securityModeComplete_ies_2,
+	1,	/* Single element */
+	&asn_SPC_securityModeComplete_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_SecurityModeComplete_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SecurityModeComplete, securityModeComplete_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_securityModeComplete_ies_2,
+		memb_securityModeComplete_ies_constraint_1,
+		&asn_PER_memb_securityModeComplete_ies_constr_2,
+		0,
+		"securityModeComplete-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SecurityModeComplete_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SecurityModeComplete_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* securityModeComplete-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SecurityModeComplete_specs_1 = {
+	sizeof(struct RANAP_SecurityModeComplete),
+	offsetof(struct RANAP_SecurityModeComplete, _asn_ctx),
+	asn_MAP_RANAP_SecurityModeComplete_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SecurityModeComplete = {
+	"RANAP_SecurityModeComplete",
+	"RANAP_SecurityModeComplete",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SecurityModeComplete_tags_1,
+	sizeof(asn_DEF_RANAP_SecurityModeComplete_tags_1)
+		/sizeof(asn_DEF_RANAP_SecurityModeComplete_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SecurityModeComplete_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SecurityModeComplete_tags_1)
+		/sizeof(asn_DEF_RANAP_SecurityModeComplete_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SecurityModeComplete_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_SecurityModeComplete_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SecurityModeComplete.h b/src/ranap/RANAP_SecurityModeComplete.h
new file mode 100644
index 0000000..6ce0962
--- /dev/null
+++ b/src/ranap/RANAP_SecurityModeComplete.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_SecurityModeComplete_H_
+#define	_RANAP_SecurityModeComplete_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SecurityModeComplete */
+typedef struct RANAP_SecurityModeComplete {
+	struct securityModeComplete_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} securityModeComplete_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SecurityModeComplete_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SecurityModeComplete;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SecurityModeComplete_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SecurityModeReject.c b/src/ranap/RANAP_SecurityModeReject.c
new file mode 100644
index 0000000..ca8de7a
--- /dev/null
+++ b/src/ranap/RANAP_SecurityModeReject.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_SecurityModeReject.h"
+
+static int
+memb_securityModeReject_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_securityModeReject_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_securityModeReject_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_securityModeReject_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_securityModeReject_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_securityModeReject_ies_specs_2 = {
+	sizeof(struct securityModeReject_ies),
+	offsetof(struct securityModeReject_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_securityModeReject_ies_2 = {
+	"securityModeReject-ies",
+	"securityModeReject-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_securityModeReject_ies_tags_2,
+	sizeof(asn_DEF_securityModeReject_ies_tags_2)
+		/sizeof(asn_DEF_securityModeReject_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_securityModeReject_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_securityModeReject_ies_tags_2)
+		/sizeof(asn_DEF_securityModeReject_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_securityModeReject_ies_constr_2,
+	asn_MBR_securityModeReject_ies_2,
+	1,	/* Single element */
+	&asn_SPC_securityModeReject_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_SecurityModeReject_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SecurityModeReject, securityModeReject_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_securityModeReject_ies_2,
+		memb_securityModeReject_ies_constraint_1,
+		&asn_PER_memb_securityModeReject_ies_constr_2,
+		0,
+		"securityModeReject-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SecurityModeReject_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SecurityModeReject_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* securityModeReject-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SecurityModeReject_specs_1 = {
+	sizeof(struct RANAP_SecurityModeReject),
+	offsetof(struct RANAP_SecurityModeReject, _asn_ctx),
+	asn_MAP_RANAP_SecurityModeReject_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SecurityModeReject = {
+	"RANAP_SecurityModeReject",
+	"RANAP_SecurityModeReject",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SecurityModeReject_tags_1,
+	sizeof(asn_DEF_RANAP_SecurityModeReject_tags_1)
+		/sizeof(asn_DEF_RANAP_SecurityModeReject_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SecurityModeReject_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SecurityModeReject_tags_1)
+		/sizeof(asn_DEF_RANAP_SecurityModeReject_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SecurityModeReject_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_SecurityModeReject_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SecurityModeReject.h b/src/ranap/RANAP_SecurityModeReject.h
new file mode 100644
index 0000000..0c7105d
--- /dev/null
+++ b/src/ranap/RANAP_SecurityModeReject.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_SecurityModeReject_H_
+#define	_RANAP_SecurityModeReject_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SecurityModeReject */
+typedef struct RANAP_SecurityModeReject {
+	struct securityModeReject_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} securityModeReject_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SecurityModeReject_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SecurityModeReject;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SecurityModeReject_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Service-Handover.c b/src/ranap/RANAP_Service-Handover.c
new file mode 100644
index 0000000..4ab9c4d
--- /dev/null
+++ b/src/ranap/RANAP_Service-Handover.c
@@ -0,0 +1,169 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Service-Handover.h"
+
+int
+RANAP_Service_Handover_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Service_Handover_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_Service_Handover_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Service_Handover_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Service_Handover_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Service_Handover_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Service_Handover_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Service_Handover_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Service_Handover_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Service_Handover_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Service_Handover_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Service_Handover_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Service_Handover_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Service_Handover_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Service_Handover_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  2l }	/* (0..2,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_Service_Handover_value2enum_1[] = {
+	{ 0,	35,	"handover-to-GSM-should-be-performed" },
+	{ 1,	39,	"handover-to-GSM-should-not-be-performed" },
+	{ 2,	38,	"handover-to-GSM-shall-not-be-performed" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_Service_Handover_enum2value_1[] = {
+	2,	/* handover-to-GSM-shall-not-be-performed(2) */
+	0,	/* handover-to-GSM-should-be-performed(0) */
+	1	/* handover-to-GSM-should-not-be-performed(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_Service_Handover_specs_1 = {
+	asn_MAP_RANAP_Service_Handover_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_Service_Handover_enum2value_1,	/* N => "tag"; sorted by N */
+	3,	/* Number of elements in the maps */
+	4,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Service_Handover_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Service_Handover = {
+	"RANAP_Service-Handover",
+	"RANAP_Service-Handover",
+	RANAP_Service_Handover_free,
+	RANAP_Service_Handover_print,
+	RANAP_Service_Handover_constraint,
+	RANAP_Service_Handover_decode_ber,
+	RANAP_Service_Handover_encode_der,
+	RANAP_Service_Handover_decode_xer,
+	RANAP_Service_Handover_encode_xer,
+	RANAP_Service_Handover_decode_uper,
+	RANAP_Service_Handover_encode_uper,
+	RANAP_Service_Handover_decode_aper,
+	RANAP_Service_Handover_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Service_Handover_tags_1,
+	sizeof(asn_DEF_RANAP_Service_Handover_tags_1)
+		/sizeof(asn_DEF_RANAP_Service_Handover_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Service_Handover_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Service_Handover_tags_1)
+		/sizeof(asn_DEF_RANAP_Service_Handover_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Service_Handover_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_Service_Handover_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Service-Handover.h b/src/ranap/RANAP_Service-Handover.h
new file mode 100644
index 0000000..1d54b1b
--- /dev/null
+++ b/src/ranap/RANAP_Service-Handover.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Service_Handover_H_
+#define	_RANAP_Service_Handover_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_Service_Handover {
+	RANAP_Service_Handover_handover_to_GSM_should_be_performed	= 0,
+	RANAP_Service_Handover_handover_to_GSM_should_not_be_performed	= 1,
+	RANAP_Service_Handover_handover_to_GSM_shall_not_be_performed	= 2
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_Service_Handover;
+
+/* RANAP_Service-Handover */
+typedef long	 RANAP_Service_Handover_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Service_Handover;
+asn_struct_free_f RANAP_Service_Handover_free;
+asn_struct_print_f RANAP_Service_Handover_print;
+asn_constr_check_f RANAP_Service_Handover_constraint;
+ber_type_decoder_f RANAP_Service_Handover_decode_ber;
+der_type_encoder_f RANAP_Service_Handover_encode_der;
+xer_type_decoder_f RANAP_Service_Handover_decode_xer;
+xer_type_encoder_f RANAP_Service_Handover_encode_xer;
+per_type_decoder_f RANAP_Service_Handover_decode_uper;
+per_type_encoder_f RANAP_Service_Handover_encode_uper;
+per_type_decoder_f RANAP_Service_Handover_decode_aper;
+per_type_encoder_f RANAP_Service_Handover_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Service_Handover_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Session-Re-establishment-Indicator.c b/src/ranap/RANAP_Session-Re-establishment-Indicator.c
new file mode 100644
index 0000000..c2cdb10
--- /dev/null
+++ b/src/ranap/RANAP_Session-Re-establishment-Indicator.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Session-Re-establishment-Indicator.h"
+
+int
+RANAP_Session_Re_establishment_Indicator_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Session_Re_establishment_Indicator_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_Session_Re_establishment_Indicator_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Session_Re_establishment_Indicator_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Session_Re_establishment_Indicator_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Session_Re_establishment_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Session_Re_establishment_Indicator_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Session_Re_establishment_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Session_Re_establishment_Indicator_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Session_Re_establishment_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Session_Re_establishment_Indicator_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Session_Re_establishment_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Session_Re_establishment_Indicator_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Session_Re_establishment_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Session_Re_establishment_Indicator_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Session_Re_establishment_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Session_Re_establishment_Indicator_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Session_Re_establishment_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Session_Re_establishment_Indicator_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Session_Re_establishment_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Session_Re_establishment_Indicator_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Session_Re_establishment_Indicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Session_Re_establishment_Indicator_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_Session_Re_establishment_Indicator_value2enum_1[] = {
+	{ 0,	4,	"true" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_Session_Re_establishment_Indicator_enum2value_1[] = {
+	0	/* true(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_Session_Re_establishment_Indicator_specs_1 = {
+	asn_MAP_RANAP_Session_Re_establishment_Indicator_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_Session_Re_establishment_Indicator_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Session_Re_establishment_Indicator_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Session_Re_establishment_Indicator = {
+	"RANAP_Session-Re-establishment-Indicator",
+	"RANAP_Session-Re-establishment-Indicator",
+	RANAP_Session_Re_establishment_Indicator_free,
+	RANAP_Session_Re_establishment_Indicator_print,
+	RANAP_Session_Re_establishment_Indicator_constraint,
+	RANAP_Session_Re_establishment_Indicator_decode_ber,
+	RANAP_Session_Re_establishment_Indicator_encode_der,
+	RANAP_Session_Re_establishment_Indicator_decode_xer,
+	RANAP_Session_Re_establishment_Indicator_encode_xer,
+	RANAP_Session_Re_establishment_Indicator_decode_uper,
+	RANAP_Session_Re_establishment_Indicator_encode_uper,
+	RANAP_Session_Re_establishment_Indicator_decode_aper,
+	RANAP_Session_Re_establishment_Indicator_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Session_Re_establishment_Indicator_tags_1,
+	sizeof(asn_DEF_RANAP_Session_Re_establishment_Indicator_tags_1)
+		/sizeof(asn_DEF_RANAP_Session_Re_establishment_Indicator_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Session_Re_establishment_Indicator_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Session_Re_establishment_Indicator_tags_1)
+		/sizeof(asn_DEF_RANAP_Session_Re_establishment_Indicator_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Session_Re_establishment_Indicator_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_Session_Re_establishment_Indicator_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Session-Re-establishment-Indicator.h b/src/ranap/RANAP_Session-Re-establishment-Indicator.h
new file mode 100644
index 0000000..ea9b931
--- /dev/null
+++ b/src/ranap/RANAP_Session-Re-establishment-Indicator.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Session_Re_establishment_Indicator_H_
+#define	_RANAP_Session_Re_establishment_Indicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_Session_Re_establishment_Indicator {
+	RANAP_Session_Re_establishment_Indicator_true	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_Session_Re_establishment_Indicator;
+
+/* RANAP_Session-Re-establishment-Indicator */
+typedef long	 RANAP_Session_Re_establishment_Indicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Session_Re_establishment_Indicator;
+asn_struct_free_f RANAP_Session_Re_establishment_Indicator_free;
+asn_struct_print_f RANAP_Session_Re_establishment_Indicator_print;
+asn_constr_check_f RANAP_Session_Re_establishment_Indicator_constraint;
+ber_type_decoder_f RANAP_Session_Re_establishment_Indicator_decode_ber;
+der_type_encoder_f RANAP_Session_Re_establishment_Indicator_encode_der;
+xer_type_decoder_f RANAP_Session_Re_establishment_Indicator_decode_xer;
+xer_type_encoder_f RANAP_Session_Re_establishment_Indicator_encode_xer;
+per_type_decoder_f RANAP_Session_Re_establishment_Indicator_decode_uper;
+per_type_encoder_f RANAP_Session_Re_establishment_Indicator_encode_uper;
+per_type_decoder_f RANAP_Session_Re_establishment_Indicator_decode_aper;
+per_type_encoder_f RANAP_Session_Re_establishment_Indicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Session_Re_establishment_Indicator_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SessionUpdateID.c b/src/ranap/RANAP_SessionUpdateID.c
new file mode 100644
index 0000000..ad77058
--- /dev/null
+++ b/src/ranap/RANAP_SessionUpdateID.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SessionUpdateID.h"
+
+int
+RANAP_SessionUpdateID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 1048575l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_SessionUpdateID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_SessionUpdateID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_SessionUpdateID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_SessionUpdateID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SessionUpdateID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SessionUpdateID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_SessionUpdateID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_SessionUpdateID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SessionUpdateID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SessionUpdateID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_SessionUpdateID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_SessionUpdateID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SessionUpdateID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SessionUpdateID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SessionUpdateID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_SessionUpdateID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SessionUpdateID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_SessionUpdateID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SessionUpdateID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_SessionUpdateID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SessionUpdateID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_SessionUpdateID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 20, -1,  0l,  1048575l }	/* (0..1048575) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SessionUpdateID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SessionUpdateID = {
+	"RANAP_SessionUpdateID",
+	"RANAP_SessionUpdateID",
+	RANAP_SessionUpdateID_free,
+	RANAP_SessionUpdateID_print,
+	RANAP_SessionUpdateID_constraint,
+	RANAP_SessionUpdateID_decode_ber,
+	RANAP_SessionUpdateID_encode_der,
+	RANAP_SessionUpdateID_decode_xer,
+	RANAP_SessionUpdateID_encode_xer,
+	RANAP_SessionUpdateID_decode_uper,
+	RANAP_SessionUpdateID_encode_uper,
+	RANAP_SessionUpdateID_decode_aper,
+	RANAP_SessionUpdateID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SessionUpdateID_tags_1,
+	sizeof(asn_DEF_RANAP_SessionUpdateID_tags_1)
+		/sizeof(asn_DEF_RANAP_SessionUpdateID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SessionUpdateID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SessionUpdateID_tags_1)
+		/sizeof(asn_DEF_RANAP_SessionUpdateID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_SessionUpdateID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_SessionUpdateID.h b/src/ranap/RANAP_SessionUpdateID.h
new file mode 100644
index 0000000..3d9f9aa
--- /dev/null
+++ b/src/ranap/RANAP_SessionUpdateID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SessionUpdateID_H_
+#define	_RANAP_SessionUpdateID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SessionUpdateID */
+typedef long	 RANAP_SessionUpdateID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SessionUpdateID;
+asn_struct_free_f RANAP_SessionUpdateID_free;
+asn_struct_print_f RANAP_SessionUpdateID_print;
+asn_constr_check_f RANAP_SessionUpdateID_constraint;
+ber_type_decoder_f RANAP_SessionUpdateID_decode_ber;
+der_type_encoder_f RANAP_SessionUpdateID_encode_der;
+xer_type_decoder_f RANAP_SessionUpdateID_decode_xer;
+xer_type_encoder_f RANAP_SessionUpdateID_encode_xer;
+per_type_decoder_f RANAP_SessionUpdateID_decode_uper;
+per_type_encoder_f RANAP_SessionUpdateID_encode_uper;
+per_type_decoder_f RANAP_SessionUpdateID_decode_aper;
+per_type_encoder_f RANAP_SessionUpdateID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SessionUpdateID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Shared-Network-Information.c b/src/ranap/RANAP_Shared-Network-Information.c
new file mode 100644
index 0000000..5f4d9c0
--- /dev/null
+++ b/src/ranap/RANAP_Shared-Network-Information.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Shared-Network-Information.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_Shared_Network_Information_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Shared_Network_Information, pLMNs_in_shared_network),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PLMNs_in_shared_network,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pLMNs-in-shared-network"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_Shared_Network_Information, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_Shared_Network_Information_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_Shared_Network_Information_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Shared_Network_Information_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNs-in-shared-network */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Shared_Network_Information_specs_1 = {
+	sizeof(struct RANAP_Shared_Network_Information),
+	offsetof(struct RANAP_Shared_Network_Information, _asn_ctx),
+	asn_MAP_RANAP_Shared_Network_Information_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_Shared_Network_Information_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Shared_Network_Information = {
+	"RANAP_Shared-Network-Information",
+	"RANAP_Shared-Network-Information",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Shared_Network_Information_tags_1,
+	sizeof(asn_DEF_RANAP_Shared_Network_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_Shared_Network_Information_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Shared_Network_Information_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Shared_Network_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_Shared_Network_Information_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Shared_Network_Information_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_Shared_Network_Information_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_Shared-Network-Information.h b/src/ranap/RANAP_Shared-Network-Information.h
new file mode 100644
index 0000000..20ed702
--- /dev/null
+++ b/src/ranap/RANAP_Shared-Network-Information.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Shared_Network_Information_H_
+#define	_RANAP_Shared_Network_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PLMNs-in-shared-network.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Shared-Network-Information */
+typedef struct RANAP_Shared_Network_Information {
+	RANAP_PLMNs_in_shared_network_t	 pLMNs_in_shared_network;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_Shared_Network_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Shared_Network_Information;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Shared_Network_Information_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SignallingIndication.c b/src/ranap/RANAP_SignallingIndication.c
new file mode 100644
index 0000000..2a01023
--- /dev/null
+++ b/src/ranap/RANAP_SignallingIndication.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SignallingIndication.h"
+
+int
+RANAP_SignallingIndication_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_SignallingIndication_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_SignallingIndication_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_SignallingIndication_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_SignallingIndication_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SignallingIndication_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SignallingIndication_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_SignallingIndication_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_SignallingIndication_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SignallingIndication_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SignallingIndication_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_SignallingIndication_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_SignallingIndication_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SignallingIndication_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SignallingIndication_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SignallingIndication_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_SignallingIndication_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SignallingIndication_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_SignallingIndication_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SignallingIndication_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_SignallingIndication_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SignallingIndication_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_SignallingIndication_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0l,  0l }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_SignallingIndication_value2enum_1[] = {
+	{ 0,	10,	"signalling" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_SignallingIndication_enum2value_1[] = {
+	0	/* signalling(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_SignallingIndication_specs_1 = {
+	asn_MAP_RANAP_SignallingIndication_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_SignallingIndication_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SignallingIndication_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SignallingIndication = {
+	"RANAP_SignallingIndication",
+	"RANAP_SignallingIndication",
+	RANAP_SignallingIndication_free,
+	RANAP_SignallingIndication_print,
+	RANAP_SignallingIndication_constraint,
+	RANAP_SignallingIndication_decode_ber,
+	RANAP_SignallingIndication_encode_der,
+	RANAP_SignallingIndication_decode_xer,
+	RANAP_SignallingIndication_encode_xer,
+	RANAP_SignallingIndication_decode_uper,
+	RANAP_SignallingIndication_encode_uper,
+	RANAP_SignallingIndication_decode_aper,
+	RANAP_SignallingIndication_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SignallingIndication_tags_1,
+	sizeof(asn_DEF_RANAP_SignallingIndication_tags_1)
+		/sizeof(asn_DEF_RANAP_SignallingIndication_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SignallingIndication_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SignallingIndication_tags_1)
+		/sizeof(asn_DEF_RANAP_SignallingIndication_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_SignallingIndication_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_SignallingIndication_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SignallingIndication.h b/src/ranap/RANAP_SignallingIndication.h
new file mode 100644
index 0000000..4c95a32
--- /dev/null
+++ b/src/ranap/RANAP_SignallingIndication.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SignallingIndication_H_
+#define	_RANAP_SignallingIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_SignallingIndication {
+	RANAP_SignallingIndication_signalling	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_SignallingIndication;
+
+/* RANAP_SignallingIndication */
+typedef long	 RANAP_SignallingIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SignallingIndication;
+asn_struct_free_f RANAP_SignallingIndication_free;
+asn_struct_print_f RANAP_SignallingIndication_print;
+asn_constr_check_f RANAP_SignallingIndication_constraint;
+ber_type_decoder_f RANAP_SignallingIndication_decode_ber;
+der_type_encoder_f RANAP_SignallingIndication_encode_der;
+xer_type_decoder_f RANAP_SignallingIndication_decode_xer;
+xer_type_encoder_f RANAP_SignallingIndication_encode_xer;
+per_type_decoder_f RANAP_SignallingIndication_decode_uper;
+per_type_encoder_f RANAP_SignallingIndication_encode_uper;
+per_type_decoder_f RANAP_SignallingIndication_decode_aper;
+per_type_encoder_f RANAP_SignallingIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SignallingIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Source-ToTarget-TransparentContainer.c b/src/ranap/RANAP_Source-ToTarget-TransparentContainer.c
new file mode 100644
index 0000000..1874cda
--- /dev/null
+++ b/src/ranap/RANAP_Source-ToTarget-TransparentContainer.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Source-ToTarget-TransparentContainer.h"
+
+int
+RANAP_Source_ToTarget_TransparentContainer_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Source_ToTarget_TransparentContainer_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_Source_ToTarget_TransparentContainer_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Source_ToTarget_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Source_ToTarget_TransparentContainer_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Source_ToTarget_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Source_ToTarget_TransparentContainer_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Source_ToTarget_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Source_ToTarget_TransparentContainer_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Source_ToTarget_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Source_ToTarget_TransparentContainer_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Source_ToTarget_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Source_ToTarget_TransparentContainer_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Source_ToTarget_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Source_ToTarget_TransparentContainer_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Source_ToTarget_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Source_ToTarget_TransparentContainer_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Source_ToTarget_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Source_ToTarget_TransparentContainer_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Source_ToTarget_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Source_ToTarget_TransparentContainer_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Source_ToTarget_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_Source_ToTarget_TransparentContainer_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Source_ToTarget_TransparentContainer = {
+	"RANAP_Source-ToTarget-TransparentContainer",
+	"RANAP_Source-ToTarget-TransparentContainer",
+	RANAP_Source_ToTarget_TransparentContainer_free,
+	RANAP_Source_ToTarget_TransparentContainer_print,
+	RANAP_Source_ToTarget_TransparentContainer_constraint,
+	RANAP_Source_ToTarget_TransparentContainer_decode_ber,
+	RANAP_Source_ToTarget_TransparentContainer_encode_der,
+	RANAP_Source_ToTarget_TransparentContainer_decode_xer,
+	RANAP_Source_ToTarget_TransparentContainer_encode_xer,
+	RANAP_Source_ToTarget_TransparentContainer_decode_uper,
+	RANAP_Source_ToTarget_TransparentContainer_encode_uper,
+	RANAP_Source_ToTarget_TransparentContainer_decode_aper,
+	RANAP_Source_ToTarget_TransparentContainer_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Source_ToTarget_TransparentContainer_tags_1,
+	sizeof(asn_DEF_RANAP_Source_ToTarget_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_Source_ToTarget_TransparentContainer_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Source_ToTarget_TransparentContainer_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Source_ToTarget_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_Source_ToTarget_TransparentContainer_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_Source-ToTarget-TransparentContainer.h b/src/ranap/RANAP_Source-ToTarget-TransparentContainer.h
new file mode 100644
index 0000000..84b1571
--- /dev/null
+++ b/src/ranap/RANAP_Source-ToTarget-TransparentContainer.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Source_ToTarget_TransparentContainer_H_
+#define	_RANAP_Source_ToTarget_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Source-ToTarget-TransparentContainer */
+typedef OCTET_STRING_t	 RANAP_Source_ToTarget_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Source_ToTarget_TransparentContainer;
+asn_struct_free_f RANAP_Source_ToTarget_TransparentContainer_free;
+asn_struct_print_f RANAP_Source_ToTarget_TransparentContainer_print;
+asn_constr_check_f RANAP_Source_ToTarget_TransparentContainer_constraint;
+ber_type_decoder_f RANAP_Source_ToTarget_TransparentContainer_decode_ber;
+der_type_encoder_f RANAP_Source_ToTarget_TransparentContainer_encode_der;
+xer_type_decoder_f RANAP_Source_ToTarget_TransparentContainer_decode_xer;
+xer_type_encoder_f RANAP_Source_ToTarget_TransparentContainer_encode_xer;
+per_type_decoder_f RANAP_Source_ToTarget_TransparentContainer_decode_uper;
+per_type_encoder_f RANAP_Source_ToTarget_TransparentContainer_encode_uper;
+per_type_decoder_f RANAP_Source_ToTarget_TransparentContainer_decode_aper;
+per_type_encoder_f RANAP_Source_ToTarget_TransparentContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Source_ToTarget_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.c b/src/ranap/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.c
new file mode 100644
index 0000000..78ef6f9
--- /dev/null
+++ b/src/ranap/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SourceBSS-ToTargetBSS-TransparentContainer.h"
+
+int
+RANAP_SourceBSS_ToTargetBSS_TransparentContainer_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_SourceBSS_ToTargetBSS_TransparentContainer_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_SourceBSS_ToTargetBSS_TransparentContainer_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_SourceBSS_ToTargetBSS_TransparentContainer_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SourceBSS_ToTargetBSS_TransparentContainer_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_SourceBSS_ToTargetBSS_TransparentContainer_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SourceBSS_ToTargetBSS_TransparentContainer_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_SourceBSS_ToTargetBSS_TransparentContainer_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SourceBSS_ToTargetBSS_TransparentContainer_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_SourceBSS_ToTargetBSS_TransparentContainer_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_SourceBSS_ToTargetBSS_TransparentContainer_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_SourceBSS_ToTargetBSS_TransparentContainer_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_SourceBSS_ToTargetBSS_TransparentContainer_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SourceBSS_ToTargetBSS_TransparentContainer = {
+	"RANAP_SourceBSS-ToTargetBSS-TransparentContainer",
+	"RANAP_SourceBSS-ToTargetBSS-TransparentContainer",
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_free,
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_print,
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_constraint,
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_decode_ber,
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_encode_der,
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_decode_xer,
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_encode_xer,
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_decode_uper,
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_encode_uper,
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_decode_aper,
+	RANAP_SourceBSS_ToTargetBSS_TransparentContainer_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SourceBSS_ToTargetBSS_TransparentContainer_tags_1,
+	sizeof(asn_DEF_RANAP_SourceBSS_ToTargetBSS_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_SourceBSS_ToTargetBSS_TransparentContainer_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SourceBSS_ToTargetBSS_TransparentContainer_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SourceBSS_ToTargetBSS_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_SourceBSS_ToTargetBSS_TransparentContainer_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.h b/src/ranap/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.h
new file mode 100644
index 0000000..e86c070
--- /dev/null
+++ b/src/ranap/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SourceBSS_ToTargetBSS_TransparentContainer_H_
+#define	_RANAP_SourceBSS_ToTargetBSS_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SourceBSS-ToTargetBSS-TransparentContainer */
+typedef OCTET_STRING_t	 RANAP_SourceBSS_ToTargetBSS_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SourceBSS_ToTargetBSS_TransparentContainer;
+asn_struct_free_f RANAP_SourceBSS_ToTargetBSS_TransparentContainer_free;
+asn_struct_print_f RANAP_SourceBSS_ToTargetBSS_TransparentContainer_print;
+asn_constr_check_f RANAP_SourceBSS_ToTargetBSS_TransparentContainer_constraint;
+ber_type_decoder_f RANAP_SourceBSS_ToTargetBSS_TransparentContainer_decode_ber;
+der_type_encoder_f RANAP_SourceBSS_ToTargetBSS_TransparentContainer_encode_der;
+xer_type_decoder_f RANAP_SourceBSS_ToTargetBSS_TransparentContainer_decode_xer;
+xer_type_encoder_f RANAP_SourceBSS_ToTargetBSS_TransparentContainer_encode_xer;
+per_type_decoder_f RANAP_SourceBSS_ToTargetBSS_TransparentContainer_decode_uper;
+per_type_encoder_f RANAP_SourceBSS_ToTargetBSS_TransparentContainer_encode_uper;
+per_type_decoder_f RANAP_SourceBSS_ToTargetBSS_TransparentContainer_decode_aper;
+per_type_encoder_f RANAP_SourceBSS_ToTargetBSS_TransparentContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SourceBSS_ToTargetBSS_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SourceCellID.c b/src/ranap/RANAP_SourceCellID.c
new file mode 100644
index 0000000..c00a108
--- /dev/null
+++ b/src/ranap/RANAP_SourceCellID.c
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SourceCellID.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_SourceCellID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_SourceCellID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SourceCellID, choice.sourceUTRANCellID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_SourceUTRANCellID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"sourceUTRANCellID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SourceCellID, choice.sourceGERANCellID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CGI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"sourceGERANCellID"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SourceCellID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sourceUTRANCellID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sourceGERANCellID */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_SourceCellID_specs_1 = {
+	sizeof(struct RANAP_SourceCellID),
+	offsetof(struct RANAP_SourceCellID, _asn_ctx),
+	offsetof(struct RANAP_SourceCellID, present),
+	sizeof(((struct RANAP_SourceCellID *)0)->present),
+	asn_MAP_RANAP_SourceCellID_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SourceCellID = {
+	"RANAP_SourceCellID",
+	"RANAP_SourceCellID",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_SourceCellID_constr_1,
+	asn_MBR_RANAP_SourceCellID_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_SourceCellID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SourceCellID.h b/src/ranap/RANAP_SourceCellID.h
new file mode 100644
index 0000000..d002552
--- /dev/null
+++ b/src/ranap/RANAP_SourceCellID.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SourceCellID_H_
+#define	_RANAP_SourceCellID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_SourceUTRANCellID.h"
+#include "RANAP_CGI.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_SourceCellID_PR {
+	RANAP_SourceCellID_PR_NOTHING,	/* No components present */
+	RANAP_SourceCellID_PR_sourceUTRANCellID,
+	RANAP_SourceCellID_PR_sourceGERANCellID,
+	/* Extensions may appear below */
+	
+} RANAP_SourceCellID_PR;
+
+/* RANAP_SourceCellID */
+typedef struct RANAP_SourceCellID {
+	RANAP_SourceCellID_PR present;
+	union RANAP_SourceCellID_u {
+		RANAP_SourceUTRANCellID_t	 sourceUTRANCellID;
+		RANAP_CGI_t	 sourceGERANCellID;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SourceCellID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SourceCellID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SourceCellID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SourceID.c b/src/ranap/RANAP_SourceID.c
new file mode 100644
index 0000000..347e9c4
--- /dev/null
+++ b/src/ranap/RANAP_SourceID.c
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SourceID.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_SourceID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_SourceID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SourceID, choice.sourceRNC_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_SourceRNC_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"sourceRNC-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SourceID, choice.sAI),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_SAI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"sAI"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SourceID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sourceRNC-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sAI */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_SourceID_specs_1 = {
+	sizeof(struct RANAP_SourceID),
+	offsetof(struct RANAP_SourceID, _asn_ctx),
+	offsetof(struct RANAP_SourceID, present),
+	sizeof(((struct RANAP_SourceID *)0)->present),
+	asn_MAP_RANAP_SourceID_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SourceID = {
+	"RANAP_SourceID",
+	"RANAP_SourceID",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_SourceID_constr_1,
+	asn_MBR_RANAP_SourceID_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_SourceID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SourceID.h b/src/ranap/RANAP_SourceID.h
new file mode 100644
index 0000000..cb390f5
--- /dev/null
+++ b/src/ranap/RANAP_SourceID.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SourceID_H_
+#define	_RANAP_SourceID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_SourceRNC-ID.h"
+#include "RANAP_SAI.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_SourceID_PR {
+	RANAP_SourceID_PR_NOTHING,	/* No components present */
+	RANAP_SourceID_PR_sourceRNC_ID,
+	RANAP_SourceID_PR_sAI,
+	/* Extensions may appear below */
+	
+} RANAP_SourceID_PR;
+
+/* RANAP_SourceID */
+typedef struct RANAP_SourceID {
+	RANAP_SourceID_PR present;
+	union RANAP_SourceID_u {
+		RANAP_SourceRNC_ID_t	 sourceRNC_ID;
+		RANAP_SAI_t	 sAI;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SourceID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SourceID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SourceID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SourceRNC-ID.c b/src/ranap/RANAP_SourceRNC-ID.c
new file mode 100644
index 0000000..a5850da
--- /dev/null
+++ b/src/ranap/RANAP_SourceRNC-ID.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SourceRNC-ID.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_SourceRNC_ID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SourceRNC_ID, pLMNidentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PLMNidentity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pLMNidentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SourceRNC_ID, rNC_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RNC_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rNC-ID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_SourceRNC_ID, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_SourceRNC_ID_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_SourceRNC_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SourceRNC_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rNC-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SourceRNC_ID_specs_1 = {
+	sizeof(struct RANAP_SourceRNC_ID),
+	offsetof(struct RANAP_SourceRNC_ID, _asn_ctx),
+	asn_MAP_RANAP_SourceRNC_ID_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_SourceRNC_ID_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SourceRNC_ID = {
+	"RANAP_SourceRNC-ID",
+	"RANAP_SourceRNC-ID",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SourceRNC_ID_tags_1,
+	sizeof(asn_DEF_RANAP_SourceRNC_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_SourceRNC_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SourceRNC_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SourceRNC_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_SourceRNC_ID_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SourceRNC_ID_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_SourceRNC_ID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SourceRNC-ID.h b/src/ranap/RANAP_SourceRNC-ID.h
new file mode 100644
index 0000000..34ce4a1
--- /dev/null
+++ b/src/ranap/RANAP_SourceRNC-ID.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SourceRNC_ID_H_
+#define	_RANAP_SourceRNC_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PLMNidentity.h"
+#include "RANAP_RNC-ID.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SourceRNC-ID */
+typedef struct RANAP_SourceRNC_ID {
+	RANAP_PLMNidentity_t	 pLMNidentity;
+	RANAP_RNC_ID_t	 rNC_ID;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SourceRNC_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SourceRNC_ID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SourceRNC_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.c b/src/ranap/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.c
new file mode 100644
index 0000000..f546dc2
--- /dev/null
+++ b/src/ranap/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.c
@@ -0,0 +1,183 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SourceRNC-ToTargetRNC-TransparentContainer.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SourceRNC_ToTargetRNC_TransparentContainer, rRC_Container),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RRC_Container,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rRC-Container"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SourceRNC_ToTargetRNC_TransparentContainer, numberOfIuInstances),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_NumberOfIuInstances,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"numberOfIuInstances"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SourceRNC_ToTargetRNC_TransparentContainer, relocationType),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RelocationType,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"relocationType"
+		},
+	{ ATF_POINTER, 10, offsetof(struct RANAP_SourceRNC_ToTargetRNC_TransparentContainer, chosenIntegrityProtectionAlgorithm),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ChosenIntegrityProtectionAlgorithm,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"chosenIntegrityProtectionAlgorithm"
+		},
+	{ ATF_POINTER, 9, offsetof(struct RANAP_SourceRNC_ToTargetRNC_TransparentContainer, integrityProtectionKey),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IntegrityProtectionKey,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"integrityProtectionKey"
+		},
+	{ ATF_POINTER, 8, offsetof(struct RANAP_SourceRNC_ToTargetRNC_TransparentContainer, chosenEncryptionAlgorithForSignalling),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ChosenEncryptionAlgorithm,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"chosenEncryptionAlgorithForSignalling"
+		},
+	{ ATF_POINTER, 7, offsetof(struct RANAP_SourceRNC_ToTargetRNC_TransparentContainer, cipheringKey),
+		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_EncryptionKey,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"cipheringKey"
+		},
+	{ ATF_POINTER, 6, offsetof(struct RANAP_SourceRNC_ToTargetRNC_TransparentContainer, chosenEncryptionAlgorithForCS),
+		(ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ChosenEncryptionAlgorithm,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"chosenEncryptionAlgorithForCS"
+		},
+	{ ATF_POINTER, 5, offsetof(struct RANAP_SourceRNC_ToTargetRNC_TransparentContainer, chosenEncryptionAlgorithForPS),
+		(ASN_TAG_CLASS_CONTEXT | (8 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ChosenEncryptionAlgorithm,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"chosenEncryptionAlgorithForPS"
+		},
+	{ ATF_POINTER, 4, offsetof(struct RANAP_SourceRNC_ToTargetRNC_TransparentContainer, d_RNTI),
+		(ASN_TAG_CLASS_CONTEXT | (9 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_D_RNTI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"d-RNTI"
+		},
+	{ ATF_POINTER, 3, offsetof(struct RANAP_SourceRNC_ToTargetRNC_TransparentContainer, targetCellId),
+		(ASN_TAG_CLASS_CONTEXT | (10 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TargetCellId,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"targetCellId"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_SourceRNC_ToTargetRNC_TransparentContainer, rAB_TrCH_Mapping),
+		(ASN_TAG_CLASS_CONTEXT | (11 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RAB_TrCH_Mapping,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rAB-TrCH-Mapping"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_SourceRNC_ToTargetRNC_TransparentContainer, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (12 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_oms_1[] = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
+static const ber_tlv_tag_t asn_DEF_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rRC-Container */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* numberOfIuInstances */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* relocationType */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* chosenIntegrityProtectionAlgorithm */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* integrityProtectionKey */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* chosenEncryptionAlgorithForSignalling */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* cipheringKey */
+    { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* chosenEncryptionAlgorithForCS */
+    { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* chosenEncryptionAlgorithForPS */
+    { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* d-RNTI */
+    { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* targetCellId */
+    { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* rAB-TrCH-Mapping */
+    { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_specs_1 = {
+	sizeof(struct RANAP_SourceRNC_ToTargetRNC_TransparentContainer),
+	offsetof(struct RANAP_SourceRNC_ToTargetRNC_TransparentContainer, _asn_ctx),
+	asn_MAP_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_tag2el_1,
+	13,	/* Count of tags in the map */
+	asn_MAP_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_oms_1,	/* Optional members */
+	10, 0,	/* Root/Additions */
+	12,	/* Start extensions */
+	14	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SourceRNC_ToTargetRNC_TransparentContainer = {
+	"RANAP_SourceRNC-ToTargetRNC-TransparentContainer",
+	"RANAP_SourceRNC-ToTargetRNC-TransparentContainer",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_tags_1,
+	sizeof(asn_DEF_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_1,
+	13,	/* Elements count */
+	&asn_SPC_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.h b/src/ranap/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.h
new file mode 100644
index 0000000..b7252f2
--- /dev/null
+++ b/src/ranap/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.h
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_H_
+#define	_RANAP_SourceRNC_ToTargetRNC_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_RRC-Container.h"
+#include "RANAP_NumberOfIuInstances.h"
+#include "RANAP_RelocationType.h"
+#include "RANAP_ChosenIntegrityProtectionAlgorithm.h"
+#include "RANAP_IntegrityProtectionKey.h"
+#include "RANAP_ChosenEncryptionAlgorithm.h"
+#include "RANAP_EncryptionKey.h"
+#include "RANAP_D-RNTI.h"
+#include "RANAP_TargetCellId.h"
+#include "RANAP_RAB-TrCH-Mapping.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SourceRNC-ToTargetRNC-TransparentContainer */
+typedef struct RANAP_SourceRNC_ToTargetRNC_TransparentContainer {
+	RANAP_RRC_Container_t	 rRC_Container;
+	RANAP_NumberOfIuInstances_t	 numberOfIuInstances;
+	RANAP_RelocationType_t	 relocationType;
+	RANAP_ChosenIntegrityProtectionAlgorithm_t	*chosenIntegrityProtectionAlgorithm	/* OPTIONAL */;
+	RANAP_IntegrityProtectionKey_t	*integrityProtectionKey	/* OPTIONAL */;
+	RANAP_ChosenEncryptionAlgorithm_t	*chosenEncryptionAlgorithForSignalling	/* OPTIONAL */;
+	RANAP_EncryptionKey_t	*cipheringKey	/* OPTIONAL */;
+	RANAP_ChosenEncryptionAlgorithm_t	*chosenEncryptionAlgorithForCS	/* OPTIONAL */;
+	RANAP_ChosenEncryptionAlgorithm_t	*chosenEncryptionAlgorithForPS	/* OPTIONAL */;
+	RANAP_D_RNTI_t	*d_RNTI	/* OPTIONAL */;
+	RANAP_TargetCellId_t	*targetCellId	/* OPTIONAL */;
+	RANAP_RAB_TrCH_Mapping_t	*rAB_TrCH_Mapping	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SourceRNC_ToTargetRNC_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SourceRNC_ToTargetRNC_TransparentContainer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SourceRNC_ToTargetRNC_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SourceStatisticsDescriptor.c b/src/ranap/RANAP_SourceStatisticsDescriptor.c
new file mode 100644
index 0000000..d07b8cf
--- /dev/null
+++ b/src/ranap/RANAP_SourceStatisticsDescriptor.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SourceStatisticsDescriptor.h"
+
+int
+RANAP_SourceStatisticsDescriptor_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_SourceStatisticsDescriptor_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_SourceStatisticsDescriptor_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_SourceStatisticsDescriptor_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_SourceStatisticsDescriptor_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SourceStatisticsDescriptor_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SourceStatisticsDescriptor_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_SourceStatisticsDescriptor_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_SourceStatisticsDescriptor_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SourceStatisticsDescriptor_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SourceStatisticsDescriptor_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_SourceStatisticsDescriptor_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_SourceStatisticsDescriptor_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SourceStatisticsDescriptor_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SourceStatisticsDescriptor_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SourceStatisticsDescriptor_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_SourceStatisticsDescriptor_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SourceStatisticsDescriptor_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_SourceStatisticsDescriptor_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SourceStatisticsDescriptor_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_SourceStatisticsDescriptor_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SourceStatisticsDescriptor_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_SourceStatisticsDescriptor_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_SourceStatisticsDescriptor_value2enum_1[] = {
+	{ 0,	6,	"speech" },
+	{ 1,	7,	"unknown" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_SourceStatisticsDescriptor_enum2value_1[] = {
+	0,	/* speech(0) */
+	1	/* unknown(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_SourceStatisticsDescriptor_specs_1 = {
+	asn_MAP_RANAP_SourceStatisticsDescriptor_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_SourceStatisticsDescriptor_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SourceStatisticsDescriptor_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SourceStatisticsDescriptor = {
+	"RANAP_SourceStatisticsDescriptor",
+	"RANAP_SourceStatisticsDescriptor",
+	RANAP_SourceStatisticsDescriptor_free,
+	RANAP_SourceStatisticsDescriptor_print,
+	RANAP_SourceStatisticsDescriptor_constraint,
+	RANAP_SourceStatisticsDescriptor_decode_ber,
+	RANAP_SourceStatisticsDescriptor_encode_der,
+	RANAP_SourceStatisticsDescriptor_decode_xer,
+	RANAP_SourceStatisticsDescriptor_encode_xer,
+	RANAP_SourceStatisticsDescriptor_decode_uper,
+	RANAP_SourceStatisticsDescriptor_encode_uper,
+	RANAP_SourceStatisticsDescriptor_decode_aper,
+	RANAP_SourceStatisticsDescriptor_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SourceStatisticsDescriptor_tags_1,
+	sizeof(asn_DEF_RANAP_SourceStatisticsDescriptor_tags_1)
+		/sizeof(asn_DEF_RANAP_SourceStatisticsDescriptor_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SourceStatisticsDescriptor_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SourceStatisticsDescriptor_tags_1)
+		/sizeof(asn_DEF_RANAP_SourceStatisticsDescriptor_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_SourceStatisticsDescriptor_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_SourceStatisticsDescriptor_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SourceStatisticsDescriptor.h b/src/ranap/RANAP_SourceStatisticsDescriptor.h
new file mode 100644
index 0000000..5f459eb
--- /dev/null
+++ b/src/ranap/RANAP_SourceStatisticsDescriptor.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SourceStatisticsDescriptor_H_
+#define	_RANAP_SourceStatisticsDescriptor_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_SourceStatisticsDescriptor {
+	RANAP_SourceStatisticsDescriptor_speech	= 0,
+	RANAP_SourceStatisticsDescriptor_unknown	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_SourceStatisticsDescriptor;
+
+/* RANAP_SourceStatisticsDescriptor */
+typedef long	 RANAP_SourceStatisticsDescriptor_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SourceStatisticsDescriptor;
+asn_struct_free_f RANAP_SourceStatisticsDescriptor_free;
+asn_struct_print_f RANAP_SourceStatisticsDescriptor_print;
+asn_constr_check_f RANAP_SourceStatisticsDescriptor_constraint;
+ber_type_decoder_f RANAP_SourceStatisticsDescriptor_decode_ber;
+der_type_encoder_f RANAP_SourceStatisticsDescriptor_encode_der;
+xer_type_decoder_f RANAP_SourceStatisticsDescriptor_decode_xer;
+xer_type_encoder_f RANAP_SourceStatisticsDescriptor_encode_xer;
+per_type_decoder_f RANAP_SourceStatisticsDescriptor_decode_uper;
+per_type_encoder_f RANAP_SourceStatisticsDescriptor_encode_uper;
+per_type_decoder_f RANAP_SourceStatisticsDescriptor_decode_aper;
+per_type_encoder_f RANAP_SourceStatisticsDescriptor_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SourceStatisticsDescriptor_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SourceUTRANCellID.c b/src/ranap/RANAP_SourceUTRANCellID.c
new file mode 100644
index 0000000..9695d86
--- /dev/null
+++ b/src/ranap/RANAP_SourceUTRANCellID.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SourceUTRANCellID.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_SourceUTRANCellID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SourceUTRANCellID, pLMNidentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PLMNidentity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pLMNidentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SourceUTRANCellID, uTRANcellID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TargetCellId,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"uTRANcellID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_SourceUTRANCellID, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_SourceUTRANCellID_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_SourceUTRANCellID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SourceUTRANCellID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uTRANcellID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SourceUTRANCellID_specs_1 = {
+	sizeof(struct RANAP_SourceUTRANCellID),
+	offsetof(struct RANAP_SourceUTRANCellID, _asn_ctx),
+	asn_MAP_RANAP_SourceUTRANCellID_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_SourceUTRANCellID_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SourceUTRANCellID = {
+	"RANAP_SourceUTRANCellID",
+	"RANAP_SourceUTRANCellID",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SourceUTRANCellID_tags_1,
+	sizeof(asn_DEF_RANAP_SourceUTRANCellID_tags_1)
+		/sizeof(asn_DEF_RANAP_SourceUTRANCellID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SourceUTRANCellID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SourceUTRANCellID_tags_1)
+		/sizeof(asn_DEF_RANAP_SourceUTRANCellID_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SourceUTRANCellID_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_SourceUTRANCellID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SourceUTRANCellID.h b/src/ranap/RANAP_SourceUTRANCellID.h
new file mode 100644
index 0000000..70977ef
--- /dev/null
+++ b/src/ranap/RANAP_SourceUTRANCellID.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SourceUTRANCellID_H_
+#define	_RANAP_SourceUTRANCellID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PLMNidentity.h"
+#include "RANAP_TargetCellId.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SourceUTRANCellID */
+typedef struct RANAP_SourceUTRANCellID {
+	RANAP_PLMNidentity_t	 pLMNidentity;
+	RANAP_TargetCellId_t	 uTRANcellID;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SourceUTRANCellID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SourceUTRANCellID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SourceUTRANCellID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.c b/src/ranap/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.c
new file mode 100644
index 0000000..f8e3037
--- /dev/null
+++ b/src/ranap/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.h"
+
+int
+RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer = {
+	"RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer",
+	"RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer",
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_free,
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_print,
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_constraint,
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_decode_ber,
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_encode_der,
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_decode_xer,
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_encode_xer,
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_decode_uper,
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_encode_uper,
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_decode_aper,
+	RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_tags_1,
+	sizeof(asn_DEF_RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.h b/src/ranap/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.h
new file mode 100644
index 0000000..347fb40
--- /dev/null
+++ b/src/ranap/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_H_
+#define	_RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer */
+typedef OCTET_STRING_t	 RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer;
+asn_struct_free_f RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_free;
+asn_struct_print_f RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_print;
+asn_constr_check_f RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_constraint;
+ber_type_decoder_f RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_decode_ber;
+der_type_encoder_f RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_encode_der;
+xer_type_decoder_f RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_decode_xer;
+xer_type_encoder_f RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_encode_xer;
+per_type_decoder_f RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_decode_uper;
+per_type_encoder_f RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_encode_uper;
+per_type_decoder_f RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_decode_aper;
+per_type_encoder_f RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SourceeNodeB_ToTargeteNodeB_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SubflowSDU-Size.c b/src/ranap/RANAP_SubflowSDU-Size.c
new file mode 100644
index 0000000..1a39238
--- /dev/null
+++ b/src/ranap/RANAP_SubflowSDU-Size.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SubflowSDU-Size.h"
+
+int
+RANAP_SubflowSDU_Size_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 4095l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_SubflowSDU_Size_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_SubflowSDU_Size_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_SubflowSDU_Size_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_SubflowSDU_Size_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SubflowSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SubflowSDU_Size_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_SubflowSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_SubflowSDU_Size_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SubflowSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SubflowSDU_Size_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_SubflowSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_SubflowSDU_Size_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SubflowSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SubflowSDU_Size_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SubflowSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_SubflowSDU_Size_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SubflowSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_SubflowSDU_Size_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SubflowSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_SubflowSDU_Size_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SubflowSDU_Size_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_SubflowSDU_Size_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 12,  12,  0l,  4095l }	/* (0..4095) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SubflowSDU_Size_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SubflowSDU_Size = {
+	"RANAP_SubflowSDU-Size",
+	"RANAP_SubflowSDU-Size",
+	RANAP_SubflowSDU_Size_free,
+	RANAP_SubflowSDU_Size_print,
+	RANAP_SubflowSDU_Size_constraint,
+	RANAP_SubflowSDU_Size_decode_ber,
+	RANAP_SubflowSDU_Size_encode_der,
+	RANAP_SubflowSDU_Size_decode_xer,
+	RANAP_SubflowSDU_Size_encode_xer,
+	RANAP_SubflowSDU_Size_decode_uper,
+	RANAP_SubflowSDU_Size_encode_uper,
+	RANAP_SubflowSDU_Size_decode_aper,
+	RANAP_SubflowSDU_Size_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SubflowSDU_Size_tags_1,
+	sizeof(asn_DEF_RANAP_SubflowSDU_Size_tags_1)
+		/sizeof(asn_DEF_RANAP_SubflowSDU_Size_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SubflowSDU_Size_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SubflowSDU_Size_tags_1)
+		/sizeof(asn_DEF_RANAP_SubflowSDU_Size_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_SubflowSDU_Size_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_SubflowSDU-Size.h b/src/ranap/RANAP_SubflowSDU-Size.h
new file mode 100644
index 0000000..daaf20b
--- /dev/null
+++ b/src/ranap/RANAP_SubflowSDU-Size.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SubflowSDU_Size_H_
+#define	_RANAP_SubflowSDU_Size_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SubflowSDU-Size */
+typedef long	 RANAP_SubflowSDU_Size_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SubflowSDU_Size;
+asn_struct_free_f RANAP_SubflowSDU_Size_free;
+asn_struct_print_f RANAP_SubflowSDU_Size_print;
+asn_constr_check_f RANAP_SubflowSDU_Size_constraint;
+ber_type_decoder_f RANAP_SubflowSDU_Size_decode_ber;
+der_type_encoder_f RANAP_SubflowSDU_Size_encode_der;
+xer_type_decoder_f RANAP_SubflowSDU_Size_decode_xer;
+xer_type_encoder_f RANAP_SubflowSDU_Size_encode_xer;
+per_type_decoder_f RANAP_SubflowSDU_Size_decode_uper;
+per_type_encoder_f RANAP_SubflowSDU_Size_encode_uper;
+per_type_decoder_f RANAP_SubflowSDU_Size_decode_aper;
+per_type_encoder_f RANAP_SubflowSDU_Size_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SubflowSDU_Size_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SubscriberProfileIDforRFP.c b/src/ranap/RANAP_SubscriberProfileIDforRFP.c
new file mode 100644
index 0000000..c428153
--- /dev/null
+++ b/src/ranap/RANAP_SubscriberProfileIDforRFP.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SubscriberProfileIDforRFP.h"
+
+int
+RANAP_SubscriberProfileIDforRFP_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 256l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_SubscriberProfileIDforRFP_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_SubscriberProfileIDforRFP_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_SubscriberProfileIDforRFP_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_SubscriberProfileIDforRFP_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SubscriberProfileIDforRFP_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SubscriberProfileIDforRFP_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_SubscriberProfileIDforRFP_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_SubscriberProfileIDforRFP_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SubscriberProfileIDforRFP_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SubscriberProfileIDforRFP_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_SubscriberProfileIDforRFP_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_SubscriberProfileIDforRFP_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SubscriberProfileIDforRFP_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SubscriberProfileIDforRFP_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SubscriberProfileIDforRFP_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_SubscriberProfileIDforRFP_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SubscriberProfileIDforRFP_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_SubscriberProfileIDforRFP_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SubscriberProfileIDforRFP_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_SubscriberProfileIDforRFP_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SubscriberProfileIDforRFP_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_SubscriberProfileIDforRFP_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  1l,  256l }	/* (1..256) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SubscriberProfileIDforRFP_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SubscriberProfileIDforRFP = {
+	"RANAP_SubscriberProfileIDforRFP",
+	"RANAP_SubscriberProfileIDforRFP",
+	RANAP_SubscriberProfileIDforRFP_free,
+	RANAP_SubscriberProfileIDforRFP_print,
+	RANAP_SubscriberProfileIDforRFP_constraint,
+	RANAP_SubscriberProfileIDforRFP_decode_ber,
+	RANAP_SubscriberProfileIDforRFP_encode_der,
+	RANAP_SubscriberProfileIDforRFP_decode_xer,
+	RANAP_SubscriberProfileIDforRFP_encode_xer,
+	RANAP_SubscriberProfileIDforRFP_decode_uper,
+	RANAP_SubscriberProfileIDforRFP_encode_uper,
+	RANAP_SubscriberProfileIDforRFP_decode_aper,
+	RANAP_SubscriberProfileIDforRFP_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SubscriberProfileIDforRFP_tags_1,
+	sizeof(asn_DEF_RANAP_SubscriberProfileIDforRFP_tags_1)
+		/sizeof(asn_DEF_RANAP_SubscriberProfileIDforRFP_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SubscriberProfileIDforRFP_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SubscriberProfileIDforRFP_tags_1)
+		/sizeof(asn_DEF_RANAP_SubscriberProfileIDforRFP_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_SubscriberProfileIDforRFP_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_SubscriberProfileIDforRFP.h b/src/ranap/RANAP_SubscriberProfileIDforRFP.h
new file mode 100644
index 0000000..984957b
--- /dev/null
+++ b/src/ranap/RANAP_SubscriberProfileIDforRFP.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SubscriberProfileIDforRFP_H_
+#define	_RANAP_SubscriberProfileIDforRFP_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SubscriberProfileIDforRFP */
+typedef long	 RANAP_SubscriberProfileIDforRFP_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SubscriberProfileIDforRFP;
+asn_struct_free_f RANAP_SubscriberProfileIDforRFP_free;
+asn_struct_print_f RANAP_SubscriberProfileIDforRFP_print;
+asn_constr_check_f RANAP_SubscriberProfileIDforRFP_constraint;
+ber_type_decoder_f RANAP_SubscriberProfileIDforRFP_decode_ber;
+der_type_encoder_f RANAP_SubscriberProfileIDforRFP_encode_der;
+xer_type_decoder_f RANAP_SubscriberProfileIDforRFP_decode_xer;
+xer_type_encoder_f RANAP_SubscriberProfileIDforRFP_encode_xer;
+per_type_decoder_f RANAP_SubscriberProfileIDforRFP_decode_uper;
+per_type_encoder_f RANAP_SubscriberProfileIDforRFP_encode_uper;
+per_type_decoder_f RANAP_SubscriberProfileIDforRFP_decode_aper;
+per_type_encoder_f RANAP_SubscriberProfileIDforRFP_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SubscriberProfileIDforRFP_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SuccessfulOutcome.c b/src/ranap/RANAP_SuccessfulOutcome.c
new file mode 100644
index 0000000..bf11f31
--- /dev/null
+++ b/src/ranap/RANAP_SuccessfulOutcome.c
@@ -0,0 +1,81 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_SuccessfulOutcome.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_SuccessfulOutcome_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SuccessfulOutcome, procedureCode),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ProcedureCode,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"procedureCode"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SuccessfulOutcome, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Criticality,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"criticality"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SuccessfulOutcome, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ANY,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SuccessfulOutcome_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SuccessfulOutcome_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_SuccessfulOutcome_specs_1 = {
+	sizeof(struct RANAP_SuccessfulOutcome),
+	offsetof(struct RANAP_SuccessfulOutcome, _asn_ctx),
+	asn_MAP_RANAP_SuccessfulOutcome_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SuccessfulOutcome = {
+	"RANAP_SuccessfulOutcome",
+	"RANAP_SuccessfulOutcome",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SuccessfulOutcome_tags_1,
+	sizeof(asn_DEF_RANAP_SuccessfulOutcome_tags_1)
+		/sizeof(asn_DEF_RANAP_SuccessfulOutcome_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SuccessfulOutcome_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SuccessfulOutcome_tags_1)
+		/sizeof(asn_DEF_RANAP_SuccessfulOutcome_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_SuccessfulOutcome_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_SuccessfulOutcome_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SuccessfulOutcome.h b/src/ranap/RANAP_SuccessfulOutcome.h
new file mode 100644
index 0000000..d772a0f
--- /dev/null
+++ b/src/ranap/RANAP_SuccessfulOutcome.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_SuccessfulOutcome_H_
+#define	_RANAP_SuccessfulOutcome_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ProcedureCode.h"
+#include "RANAP_Criticality.h"
+#include <ANY.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SuccessfulOutcome */
+typedef struct RANAP_SuccessfulOutcome {
+	RANAP_ProcedureCode_t	 procedureCode;
+	RANAP_Criticality_t	 criticality;
+	ANY_t	 value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SuccessfulOutcome_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SuccessfulOutcome;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SuccessfulOutcome_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SupportedBitrate.c b/src/ranap/RANAP_SupportedBitrate.c
new file mode 100644
index 0000000..61b95fc
--- /dev/null
+++ b/src/ranap/RANAP_SupportedBitrate.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SupportedBitrate.h"
+
+int
+RANAP_SupportedBitrate_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 1000000000l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_SupportedBitrate_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_SupportedBitrate_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_SupportedBitrate_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_SupportedBitrate_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SupportedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SupportedBitrate_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_SupportedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_SupportedBitrate_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SupportedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SupportedBitrate_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_SupportedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_SupportedBitrate_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_SupportedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_SupportedBitrate_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SupportedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_SupportedBitrate_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SupportedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_SupportedBitrate_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_SupportedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_SupportedBitrate_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_SupportedBitrate_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_SupportedBitrate_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  30, -1,  1l,  1000000000l }	/* (1..1000000000,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SupportedBitrate_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SupportedBitrate = {
+	"RANAP_SupportedBitrate",
+	"RANAP_SupportedBitrate",
+	RANAP_SupportedBitrate_free,
+	RANAP_SupportedBitrate_print,
+	RANAP_SupportedBitrate_constraint,
+	RANAP_SupportedBitrate_decode_ber,
+	RANAP_SupportedBitrate_encode_der,
+	RANAP_SupportedBitrate_decode_xer,
+	RANAP_SupportedBitrate_encode_xer,
+	RANAP_SupportedBitrate_decode_uper,
+	RANAP_SupportedBitrate_encode_uper,
+	RANAP_SupportedBitrate_decode_aper,
+	RANAP_SupportedBitrate_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SupportedBitrate_tags_1,
+	sizeof(asn_DEF_RANAP_SupportedBitrate_tags_1)
+		/sizeof(asn_DEF_RANAP_SupportedBitrate_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SupportedBitrate_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SupportedBitrate_tags_1)
+		/sizeof(asn_DEF_RANAP_SupportedBitrate_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_SupportedBitrate_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_SupportedBitrate.h b/src/ranap/RANAP_SupportedBitrate.h
new file mode 100644
index 0000000..a65f694
--- /dev/null
+++ b/src/ranap/RANAP_SupportedBitrate.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SupportedBitrate_H_
+#define	_RANAP_SupportedBitrate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SupportedBitrate */
+typedef long	 RANAP_SupportedBitrate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SupportedBitrate;
+asn_struct_free_f RANAP_SupportedBitrate_free;
+asn_struct_print_f RANAP_SupportedBitrate_print;
+asn_constr_check_f RANAP_SupportedBitrate_constraint;
+ber_type_decoder_f RANAP_SupportedBitrate_decode_ber;
+der_type_encoder_f RANAP_SupportedBitrate_encode_der;
+xer_type_decoder_f RANAP_SupportedBitrate_decode_xer;
+xer_type_encoder_f RANAP_SupportedBitrate_encode_xer;
+per_type_decoder_f RANAP_SupportedBitrate_decode_uper;
+per_type_encoder_f RANAP_SupportedBitrate_encode_uper;
+per_type_decoder_f RANAP_SupportedBitrate_decode_aper;
+per_type_encoder_f RANAP_SupportedBitrate_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SupportedBitrate_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_SupportedRAB-ParameterBitrateList.c b/src/ranap/RANAP_SupportedRAB-ParameterBitrateList.c
new file mode 100644
index 0000000..7d32eca
--- /dev/null
+++ b/src/ranap/RANAP_SupportedRAB-ParameterBitrateList.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_SupportedRAB-ParameterBitrateList.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_SupportedRAB_ParameterBitrateList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_SupportedRAB_ParameterBitrateList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_SupportedBitrate,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_SupportedRAB_ParameterBitrateList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_SupportedRAB_ParameterBitrateList_specs_1 = {
+	sizeof(struct RANAP_SupportedRAB_ParameterBitrateList),
+	offsetof(struct RANAP_SupportedRAB_ParameterBitrateList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SupportedRAB_ParameterBitrateList = {
+	"RANAP_SupportedRAB-ParameterBitrateList",
+	"RANAP_SupportedRAB-ParameterBitrateList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_SupportedRAB_ParameterBitrateList_tags_1,
+	sizeof(asn_DEF_RANAP_SupportedRAB_ParameterBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_SupportedRAB_ParameterBitrateList_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_SupportedRAB_ParameterBitrateList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_SupportedRAB_ParameterBitrateList_tags_1)
+		/sizeof(asn_DEF_RANAP_SupportedRAB_ParameterBitrateList_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_SupportedRAB_ParameterBitrateList_constr_1,
+	asn_MBR_RANAP_SupportedRAB_ParameterBitrateList_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_SupportedRAB_ParameterBitrateList_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_SupportedRAB-ParameterBitrateList.h b/src/ranap/RANAP_SupportedRAB-ParameterBitrateList.h
new file mode 100644
index 0000000..17278b8
--- /dev/null
+++ b/src/ranap/RANAP_SupportedRAB-ParameterBitrateList.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_SupportedRAB_ParameterBitrateList_H_
+#define	_RANAP_SupportedRAB_ParameterBitrateList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_SupportedBitrate.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_SupportedRAB-ParameterBitrateList */
+typedef struct RANAP_SupportedRAB_ParameterBitrateList {
+	A_SEQUENCE_OF(RANAP_SupportedBitrate_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_SupportedRAB_ParameterBitrateList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_SupportedRAB_ParameterBitrateList;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_SupportedRAB_ParameterBitrateList_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TAC.c b/src/ranap/RANAP_TAC.c
new file mode 100644
index 0000000..d1dde67
--- /dev/null
+++ b/src/ranap/RANAP_TAC.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TAC.h"
+
+int
+RANAP_TAC_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 2l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TAC_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_TAC_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TAC_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TAC_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TAC_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TAC_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TAC_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TAC_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TAC_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TAC_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TAC_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TAC_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TAC_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TAC_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TAC_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TAC_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TAC_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TAC_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TAC_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TAC_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TAC_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_TAC_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  2l,  2l }	/* (SIZE(2..2)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TAC_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TAC = {
+	"RANAP_TAC",
+	"RANAP_TAC",
+	RANAP_TAC_free,
+	RANAP_TAC_print,
+	RANAP_TAC_constraint,
+	RANAP_TAC_decode_ber,
+	RANAP_TAC_encode_der,
+	RANAP_TAC_decode_xer,
+	RANAP_TAC_encode_xer,
+	RANAP_TAC_decode_uper,
+	RANAP_TAC_encode_uper,
+	RANAP_TAC_decode_aper,
+	RANAP_TAC_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TAC_tags_1,
+	sizeof(asn_DEF_RANAP_TAC_tags_1)
+		/sizeof(asn_DEF_RANAP_TAC_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TAC_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TAC_tags_1)
+		/sizeof(asn_DEF_RANAP_TAC_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TAC_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_TAC.h b/src/ranap/RANAP_TAC.h
new file mode 100644
index 0000000..7b3e47b
--- /dev/null
+++ b/src/ranap/RANAP_TAC.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TAC_H_
+#define	_RANAP_TAC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TAC */
+typedef OCTET_STRING_t	 RANAP_TAC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TAC;
+asn_struct_free_f RANAP_TAC_free;
+asn_struct_print_f RANAP_TAC_print;
+asn_constr_check_f RANAP_TAC_constraint;
+ber_type_decoder_f RANAP_TAC_decode_ber;
+der_type_encoder_f RANAP_TAC_encode_der;
+xer_type_decoder_f RANAP_TAC_decode_xer;
+xer_type_encoder_f RANAP_TAC_encode_xer;
+per_type_decoder_f RANAP_TAC_decode_uper;
+per_type_encoder_f RANAP_TAC_encode_uper;
+per_type_decoder_f RANAP_TAC_decode_aper;
+per_type_encoder_f RANAP_TAC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TAC_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TAI.c b/src/ranap/RANAP_TAI.c
new file mode 100644
index 0000000..bbecc2c
--- /dev/null
+++ b/src/ranap/RANAP_TAI.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TAI.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_TAI_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TAI, pLMNidentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PLMNidentity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pLMNidentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TAI, tAC),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TAC,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"tAC"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_TAI, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_TAI_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_TAI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_TAI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tAC */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_TAI_specs_1 = {
+	sizeof(struct RANAP_TAI),
+	offsetof(struct RANAP_TAI, _asn_ctx),
+	asn_MAP_RANAP_TAI_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_TAI_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TAI = {
+	"RANAP_TAI",
+	"RANAP_TAI",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TAI_tags_1,
+	sizeof(asn_DEF_RANAP_TAI_tags_1)
+		/sizeof(asn_DEF_RANAP_TAI_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TAI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TAI_tags_1)
+		/sizeof(asn_DEF_RANAP_TAI_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_TAI_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_TAI_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TAI.h b/src/ranap/RANAP_TAI.h
new file mode 100644
index 0000000..106e5b9
--- /dev/null
+++ b/src/ranap/RANAP_TAI.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TAI_H_
+#define	_RANAP_TAI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PLMNidentity.h"
+#include "RANAP_TAC.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TAI */
+typedef struct RANAP_TAI {
+	RANAP_PLMNidentity_t	 pLMNidentity;
+	RANAP_TAC_t	 tAC;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_TAI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TAI;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TAI_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TBCD-STRING.c b/src/ranap/RANAP_TBCD-STRING.c
new file mode 100644
index 0000000..b577160
--- /dev/null
+++ b/src/ranap/RANAP_TBCD-STRING.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TBCD-STRING.h"
+
+int
+RANAP_TBCD_STRING_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TBCD_STRING_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_TBCD_STRING_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TBCD_STRING_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TBCD_STRING_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TBCD_STRING_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TBCD_STRING_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TBCD_STRING_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TBCD_STRING_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TBCD_STRING_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TBCD_STRING_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TBCD_STRING_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TBCD_STRING_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TBCD_STRING_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TBCD_STRING_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TBCD_STRING_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TBCD_STRING_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TBCD_STRING_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TBCD_STRING_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TBCD_STRING_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TBCD_STRING_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TBCD_STRING_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_TBCD_STRING_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TBCD_STRING = {
+	"RANAP_TBCD-STRING",
+	"RANAP_TBCD-STRING",
+	RANAP_TBCD_STRING_free,
+	RANAP_TBCD_STRING_print,
+	RANAP_TBCD_STRING_constraint,
+	RANAP_TBCD_STRING_decode_ber,
+	RANAP_TBCD_STRING_encode_der,
+	RANAP_TBCD_STRING_decode_xer,
+	RANAP_TBCD_STRING_encode_xer,
+	RANAP_TBCD_STRING_decode_uper,
+	RANAP_TBCD_STRING_encode_uper,
+	RANAP_TBCD_STRING_decode_aper,
+	RANAP_TBCD_STRING_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TBCD_STRING_tags_1,
+	sizeof(asn_DEF_RANAP_TBCD_STRING_tags_1)
+		/sizeof(asn_DEF_RANAP_TBCD_STRING_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TBCD_STRING_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TBCD_STRING_tags_1)
+		/sizeof(asn_DEF_RANAP_TBCD_STRING_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_TBCD-STRING.h b/src/ranap/RANAP_TBCD-STRING.h
new file mode 100644
index 0000000..b3787aa
--- /dev/null
+++ b/src/ranap/RANAP_TBCD-STRING.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TBCD_STRING_H_
+#define	_RANAP_TBCD_STRING_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TBCD-STRING */
+typedef OCTET_STRING_t	 RANAP_TBCD_STRING_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TBCD_STRING;
+asn_struct_free_f RANAP_TBCD_STRING_free;
+asn_struct_print_f RANAP_TBCD_STRING_print;
+asn_constr_check_f RANAP_TBCD_STRING_constraint;
+ber_type_decoder_f RANAP_TBCD_STRING_decode_ber;
+der_type_encoder_f RANAP_TBCD_STRING_encode_der;
+xer_type_decoder_f RANAP_TBCD_STRING_decode_xer;
+xer_type_encoder_f RANAP_TBCD_STRING_encode_xer;
+per_type_decoder_f RANAP_TBCD_STRING_decode_uper;
+per_type_encoder_f RANAP_TBCD_STRING_encode_uper;
+per_type_decoder_f RANAP_TBCD_STRING_decode_aper;
+per_type_encoder_f RANAP_TBCD_STRING_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TBCD_STRING_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TMGI.c b/src/ranap/RANAP_TMGI.c
new file mode 100644
index 0000000..b76e777
--- /dev/null
+++ b/src/ranap/RANAP_TMGI.c
@@ -0,0 +1,114 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TMGI.h"
+
+static int
+memb_serviceID_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 3l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_serviceID_constr_3 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  3l,  3l }	/* (SIZE(3..3)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_TMGI_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TMGI, pLMNidentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PLMNidentity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pLMNidentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TMGI, serviceID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_OCTET_STRING,
+		memb_serviceID_constraint_1,
+		&asn_PER_memb_serviceID_constr_3,
+		0,
+		"serviceID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_TMGI, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_TMGI_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_TMGI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_TMGI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serviceID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_TMGI_specs_1 = {
+	sizeof(struct RANAP_TMGI),
+	offsetof(struct RANAP_TMGI, _asn_ctx),
+	asn_MAP_RANAP_TMGI_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_TMGI_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TMGI = {
+	"RANAP_TMGI",
+	"RANAP_TMGI",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TMGI_tags_1,
+	sizeof(asn_DEF_RANAP_TMGI_tags_1)
+		/sizeof(asn_DEF_RANAP_TMGI_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TMGI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TMGI_tags_1)
+		/sizeof(asn_DEF_RANAP_TMGI_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_TMGI_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_TMGI_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TMGI.h b/src/ranap/RANAP_TMGI.h
new file mode 100644
index 0000000..e09dd16
--- /dev/null
+++ b/src/ranap/RANAP_TMGI.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TMGI_H_
+#define	_RANAP_TMGI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PLMNidentity.h"
+#include <OCTET_STRING.h>
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TMGI */
+typedef struct RANAP_TMGI {
+	RANAP_PLMNidentity_t	 pLMNidentity;
+	OCTET_STRING_t	 serviceID;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_TMGI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TMGI;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TMGI_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TMSI.c b/src/ranap/RANAP_TMSI.c
new file mode 100644
index 0000000..d7b3212
--- /dev/null
+++ b/src/ranap/RANAP_TMSI.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TMSI.h"
+
+int
+RANAP_TMSI_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 4l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TMSI_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_TMSI_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TMSI_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TMSI_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TMSI_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TMSI_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TMSI_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TMSI_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TMSI_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TMSI_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TMSI_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TMSI_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TMSI_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_TMSI_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  4l,  4l }	/* (SIZE(4..4)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TMSI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TMSI = {
+	"RANAP_TMSI",
+	"RANAP_TMSI",
+	RANAP_TMSI_free,
+	RANAP_TMSI_print,
+	RANAP_TMSI_constraint,
+	RANAP_TMSI_decode_ber,
+	RANAP_TMSI_encode_der,
+	RANAP_TMSI_decode_xer,
+	RANAP_TMSI_encode_xer,
+	RANAP_TMSI_decode_uper,
+	RANAP_TMSI_encode_uper,
+	RANAP_TMSI_decode_aper,
+	RANAP_TMSI_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TMSI_tags_1,
+	sizeof(asn_DEF_RANAP_TMSI_tags_1)
+		/sizeof(asn_DEF_RANAP_TMSI_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TMSI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TMSI_tags_1)
+		/sizeof(asn_DEF_RANAP_TMSI_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TMSI_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_TMSI.h b/src/ranap/RANAP_TMSI.h
new file mode 100644
index 0000000..f4d4c4d
--- /dev/null
+++ b/src/ranap/RANAP_TMSI.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TMSI_H_
+#define	_RANAP_TMSI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TMSI */
+typedef OCTET_STRING_t	 RANAP_TMSI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TMSI;
+asn_struct_free_f RANAP_TMSI_free;
+asn_struct_print_f RANAP_TMSI_print;
+asn_constr_check_f RANAP_TMSI_constraint;
+ber_type_decoder_f RANAP_TMSI_decode_ber;
+der_type_encoder_f RANAP_TMSI_encode_der;
+xer_type_decoder_f RANAP_TMSI_decode_xer;
+xer_type_encoder_f RANAP_TMSI_encode_xer;
+per_type_decoder_f RANAP_TMSI_decode_uper;
+per_type_encoder_f RANAP_TMSI_encode_uper;
+per_type_decoder_f RANAP_TMSI_decode_aper;
+per_type_encoder_f RANAP_TMSI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TMSI_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Target-ToSource-TransparentContainer.c b/src/ranap/RANAP_Target-ToSource-TransparentContainer.c
new file mode 100644
index 0000000..68fe629
--- /dev/null
+++ b/src/ranap/RANAP_Target-ToSource-TransparentContainer.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Target-ToSource-TransparentContainer.h"
+
+int
+RANAP_Target_ToSource_TransparentContainer_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Target_ToSource_TransparentContainer_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_Target_ToSource_TransparentContainer_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Target_ToSource_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Target_ToSource_TransparentContainer_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Target_ToSource_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Target_ToSource_TransparentContainer_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Target_ToSource_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Target_ToSource_TransparentContainer_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Target_ToSource_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Target_ToSource_TransparentContainer_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Target_ToSource_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Target_ToSource_TransparentContainer_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Target_ToSource_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Target_ToSource_TransparentContainer_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Target_ToSource_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Target_ToSource_TransparentContainer_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Target_ToSource_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Target_ToSource_TransparentContainer_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Target_ToSource_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Target_ToSource_TransparentContainer_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Target_ToSource_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_Target_ToSource_TransparentContainer_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Target_ToSource_TransparentContainer = {
+	"RANAP_Target-ToSource-TransparentContainer",
+	"RANAP_Target-ToSource-TransparentContainer",
+	RANAP_Target_ToSource_TransparentContainer_free,
+	RANAP_Target_ToSource_TransparentContainer_print,
+	RANAP_Target_ToSource_TransparentContainer_constraint,
+	RANAP_Target_ToSource_TransparentContainer_decode_ber,
+	RANAP_Target_ToSource_TransparentContainer_encode_der,
+	RANAP_Target_ToSource_TransparentContainer_decode_xer,
+	RANAP_Target_ToSource_TransparentContainer_encode_xer,
+	RANAP_Target_ToSource_TransparentContainer_decode_uper,
+	RANAP_Target_ToSource_TransparentContainer_encode_uper,
+	RANAP_Target_ToSource_TransparentContainer_decode_aper,
+	RANAP_Target_ToSource_TransparentContainer_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Target_ToSource_TransparentContainer_tags_1,
+	sizeof(asn_DEF_RANAP_Target_ToSource_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_Target_ToSource_TransparentContainer_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Target_ToSource_TransparentContainer_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Target_ToSource_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_Target_ToSource_TransparentContainer_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_Target-ToSource-TransparentContainer.h b/src/ranap/RANAP_Target-ToSource-TransparentContainer.h
new file mode 100644
index 0000000..0b82065
--- /dev/null
+++ b/src/ranap/RANAP_Target-ToSource-TransparentContainer.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Target_ToSource_TransparentContainer_H_
+#define	_RANAP_Target_ToSource_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Target-ToSource-TransparentContainer */
+typedef OCTET_STRING_t	 RANAP_Target_ToSource_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Target_ToSource_TransparentContainer;
+asn_struct_free_f RANAP_Target_ToSource_TransparentContainer_free;
+asn_struct_print_f RANAP_Target_ToSource_TransparentContainer_print;
+asn_constr_check_f RANAP_Target_ToSource_TransparentContainer_constraint;
+ber_type_decoder_f RANAP_Target_ToSource_TransparentContainer_decode_ber;
+der_type_encoder_f RANAP_Target_ToSource_TransparentContainer_encode_der;
+xer_type_decoder_f RANAP_Target_ToSource_TransparentContainer_decode_xer;
+xer_type_encoder_f RANAP_Target_ToSource_TransparentContainer_encode_xer;
+per_type_decoder_f RANAP_Target_ToSource_TransparentContainer_decode_uper;
+per_type_encoder_f RANAP_Target_ToSource_TransparentContainer_encode_uper;
+per_type_decoder_f RANAP_Target_ToSource_TransparentContainer_decode_aper;
+per_type_encoder_f RANAP_Target_ToSource_TransparentContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Target_ToSource_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.c b/src/ranap/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.c
new file mode 100644
index 0000000..903f329
--- /dev/null
+++ b/src/ranap/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TargetBSS-ToSourceBSS-TransparentContainer.h"
+
+int
+RANAP_TargetBSS_ToSourceBSS_TransparentContainer_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TargetBSS_ToSourceBSS_TransparentContainer_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_TargetBSS_ToSourceBSS_TransparentContainer_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TargetBSS_ToSourceBSS_TransparentContainer_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TargetBSS_ToSourceBSS_TransparentContainer_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TargetBSS_ToSourceBSS_TransparentContainer_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TargetBSS_ToSourceBSS_TransparentContainer_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TargetBSS_ToSourceBSS_TransparentContainer_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TargetBSS_ToSourceBSS_TransparentContainer_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TargetBSS_ToSourceBSS_TransparentContainer_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TargetBSS_ToSourceBSS_TransparentContainer_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TargetBSS_ToSourceBSS_TransparentContainer_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_TargetBSS_ToSourceBSS_TransparentContainer_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TargetBSS_ToSourceBSS_TransparentContainer = {
+	"RANAP_TargetBSS-ToSourceBSS-TransparentContainer",
+	"RANAP_TargetBSS-ToSourceBSS-TransparentContainer",
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_free,
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_print,
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_constraint,
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_decode_ber,
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_encode_der,
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_decode_xer,
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_encode_xer,
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_decode_uper,
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_encode_uper,
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_decode_aper,
+	RANAP_TargetBSS_ToSourceBSS_TransparentContainer_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TargetBSS_ToSourceBSS_TransparentContainer_tags_1,
+	sizeof(asn_DEF_RANAP_TargetBSS_ToSourceBSS_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_TargetBSS_ToSourceBSS_TransparentContainer_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TargetBSS_ToSourceBSS_TransparentContainer_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TargetBSS_ToSourceBSS_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_TargetBSS_ToSourceBSS_TransparentContainer_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.h b/src/ranap/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.h
new file mode 100644
index 0000000..9ee065e
--- /dev/null
+++ b/src/ranap/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TargetBSS_ToSourceBSS_TransparentContainer_H_
+#define	_RANAP_TargetBSS_ToSourceBSS_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TargetBSS-ToSourceBSS-TransparentContainer */
+typedef OCTET_STRING_t	 RANAP_TargetBSS_ToSourceBSS_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TargetBSS_ToSourceBSS_TransparentContainer;
+asn_struct_free_f RANAP_TargetBSS_ToSourceBSS_TransparentContainer_free;
+asn_struct_print_f RANAP_TargetBSS_ToSourceBSS_TransparentContainer_print;
+asn_constr_check_f RANAP_TargetBSS_ToSourceBSS_TransparentContainer_constraint;
+ber_type_decoder_f RANAP_TargetBSS_ToSourceBSS_TransparentContainer_decode_ber;
+der_type_encoder_f RANAP_TargetBSS_ToSourceBSS_TransparentContainer_encode_der;
+xer_type_decoder_f RANAP_TargetBSS_ToSourceBSS_TransparentContainer_decode_xer;
+xer_type_encoder_f RANAP_TargetBSS_ToSourceBSS_TransparentContainer_encode_xer;
+per_type_decoder_f RANAP_TargetBSS_ToSourceBSS_TransparentContainer_decode_uper;
+per_type_encoder_f RANAP_TargetBSS_ToSourceBSS_TransparentContainer_encode_uper;
+per_type_decoder_f RANAP_TargetBSS_ToSourceBSS_TransparentContainer_decode_aper;
+per_type_encoder_f RANAP_TargetBSS_ToSourceBSS_TransparentContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TargetBSS_ToSourceBSS_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TargetCellId.c b/src/ranap/RANAP_TargetCellId.c
new file mode 100644
index 0000000..3dcc855
--- /dev/null
+++ b/src/ranap/RANAP_TargetCellId.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TargetCellId.h"
+
+int
+RANAP_TargetCellId_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 268435455l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TargetCellId_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_TargetCellId_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TargetCellId_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TargetCellId_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TargetCellId_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TargetCellId_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TargetCellId_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TargetCellId_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TargetCellId_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TargetCellId_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TargetCellId_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TargetCellId_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TargetCellId_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TargetCellId_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TargetCellId_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TargetCellId_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TargetCellId_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TargetCellId_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TargetCellId_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TargetCellId_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TargetCellId_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_TargetCellId_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 28, -1,  0l,  268435455l }	/* (0..268435455) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TargetCellId_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TargetCellId = {
+	"RANAP_TargetCellId",
+	"RANAP_TargetCellId",
+	RANAP_TargetCellId_free,
+	RANAP_TargetCellId_print,
+	RANAP_TargetCellId_constraint,
+	RANAP_TargetCellId_decode_ber,
+	RANAP_TargetCellId_encode_der,
+	RANAP_TargetCellId_decode_xer,
+	RANAP_TargetCellId_encode_xer,
+	RANAP_TargetCellId_decode_uper,
+	RANAP_TargetCellId_encode_uper,
+	RANAP_TargetCellId_decode_aper,
+	RANAP_TargetCellId_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TargetCellId_tags_1,
+	sizeof(asn_DEF_RANAP_TargetCellId_tags_1)
+		/sizeof(asn_DEF_RANAP_TargetCellId_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TargetCellId_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TargetCellId_tags_1)
+		/sizeof(asn_DEF_RANAP_TargetCellId_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TargetCellId_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_TargetCellId.h b/src/ranap/RANAP_TargetCellId.h
new file mode 100644
index 0000000..06dcb01
--- /dev/null
+++ b/src/ranap/RANAP_TargetCellId.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TargetCellId_H_
+#define	_RANAP_TargetCellId_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TargetCellId */
+typedef long	 RANAP_TargetCellId_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TargetCellId;
+asn_struct_free_f RANAP_TargetCellId_free;
+asn_struct_print_f RANAP_TargetCellId_print;
+asn_constr_check_f RANAP_TargetCellId_constraint;
+ber_type_decoder_f RANAP_TargetCellId_decode_ber;
+der_type_encoder_f RANAP_TargetCellId_encode_der;
+xer_type_decoder_f RANAP_TargetCellId_decode_xer;
+xer_type_encoder_f RANAP_TargetCellId_encode_xer;
+per_type_decoder_f RANAP_TargetCellId_decode_uper;
+per_type_encoder_f RANAP_TargetCellId_encode_uper;
+per_type_decoder_f RANAP_TargetCellId_decode_aper;
+per_type_encoder_f RANAP_TargetCellId_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TargetCellId_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TargetENB-ID.c b/src/ranap/RANAP_TargetENB-ID.c
new file mode 100644
index 0000000..5b83983
--- /dev/null
+++ b/src/ranap/RANAP_TargetENB-ID.c
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TargetENB-ID.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_TargetENB_ID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TargetENB_ID, pLMNidentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PLMNidentity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pLMNidentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TargetENB_ID, eNB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANAP_ENB_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"eNB-ID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_TargetENB_ID, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TargetENB_ID, selectedTAI),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TAI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"selectedTAI"
+		},
+};
+static const int asn_MAP_RANAP_TargetENB_ID_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_TargetENB_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_TargetENB_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* iE-Extensions */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* selectedTAI */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_TargetENB_ID_specs_1 = {
+	sizeof(struct RANAP_TargetENB_ID),
+	offsetof(struct RANAP_TargetENB_ID, _asn_ctx),
+	asn_MAP_RANAP_TargetENB_ID_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_TargetENB_ID_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	3,	/* Start extensions */
+	5	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TargetENB_ID = {
+	"RANAP_TargetENB-ID",
+	"RANAP_TargetENB-ID",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TargetENB_ID_tags_1,
+	sizeof(asn_DEF_RANAP_TargetENB_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_TargetENB_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TargetENB_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TargetENB_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_TargetENB_ID_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_TargetENB_ID_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_TargetENB_ID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TargetENB-ID.h b/src/ranap/RANAP_TargetENB-ID.h
new file mode 100644
index 0000000..aa0dc0f
--- /dev/null
+++ b/src/ranap/RANAP_TargetENB-ID.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TargetENB_ID_H_
+#define	_RANAP_TargetENB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PLMNidentity.h"
+#include "RANAP_ENB-ID.h"
+#include "RANAP_IE-Extensions.h"
+#include "RANAP_TAI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TargetENB-ID */
+typedef struct RANAP_TargetENB_ID {
+	RANAP_PLMNidentity_t	 pLMNidentity;
+	RANAP_ENB_ID_t	 eNB_ID;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	RANAP_TAI_t	 selectedTAI;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_TargetENB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TargetENB_ID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TargetENB_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TargetID.c b/src/ranap/RANAP_TargetID.c
new file mode 100644
index 0000000..34572e8
--- /dev/null
+++ b/src/ranap/RANAP_TargetID.c
@@ -0,0 +1,82 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TargetID.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_TargetID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_TargetID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TargetID, choice.targetRNC_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TargetRNC_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"targetRNC-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TargetID, choice.cGI),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CGI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"cGI"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TargetID, choice.targeteNB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TargetENB_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"targeteNB-ID"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_TargetID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* targetRNC-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cGI */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* targeteNB-ID */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_TargetID_specs_1 = {
+	sizeof(struct RANAP_TargetID),
+	offsetof(struct RANAP_TargetID, _asn_ctx),
+	offsetof(struct RANAP_TargetID, present),
+	sizeof(((struct RANAP_TargetID *)0)->present),
+	asn_MAP_RANAP_TargetID_tag2el_1,
+	3,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TargetID = {
+	"RANAP_TargetID",
+	"RANAP_TargetID",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_TargetID_constr_1,
+	asn_MBR_RANAP_TargetID_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_TargetID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TargetID.h b/src/ranap/RANAP_TargetID.h
new file mode 100644
index 0000000..9f767a7
--- /dev/null
+++ b/src/ranap/RANAP_TargetID.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TargetID_H_
+#define	_RANAP_TargetID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_TargetRNC-ID.h"
+#include "RANAP_CGI.h"
+#include "RANAP_TargetENB-ID.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_TargetID_PR {
+	RANAP_TargetID_PR_NOTHING,	/* No components present */
+	RANAP_TargetID_PR_targetRNC_ID,
+	RANAP_TargetID_PR_cGI,
+	/* Extensions may appear below */
+	RANAP_TargetID_PR_targeteNB_ID
+} RANAP_TargetID_PR;
+
+/* RANAP_TargetID */
+typedef struct RANAP_TargetID {
+	RANAP_TargetID_PR present;
+	union RANAP_TargetID_u {
+		RANAP_TargetRNC_ID_t	 targetRNC_ID;
+		RANAP_CGI_t	 cGI;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+		RANAP_TargetENB_ID_t	 targeteNB_ID;
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_TargetID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TargetID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TargetID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TargetRNC-ID.c b/src/ranap/RANAP_TargetRNC-ID.c
new file mode 100644
index 0000000..b8cfe12
--- /dev/null
+++ b/src/ranap/RANAP_TargetRNC-ID.c
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TargetRNC-ID.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_TargetRNC_ID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TargetRNC_ID, lAI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_LAI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"lAI"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_TargetRNC_ID, rAC),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RAC,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rAC"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TargetRNC_ID, rNC_ID),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RNC_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rNC-ID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_TargetRNC_ID, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_TargetRNC_ID_oms_1[] = { 1, 3 };
+static const ber_tlv_tag_t asn_DEF_RANAP_TargetRNC_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_TargetRNC_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lAI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rAC */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rNC-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_TargetRNC_ID_specs_1 = {
+	sizeof(struct RANAP_TargetRNC_ID),
+	offsetof(struct RANAP_TargetRNC_ID, _asn_ctx),
+	asn_MAP_RANAP_TargetRNC_ID_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_TargetRNC_ID_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TargetRNC_ID = {
+	"RANAP_TargetRNC-ID",
+	"RANAP_TargetRNC-ID",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TargetRNC_ID_tags_1,
+	sizeof(asn_DEF_RANAP_TargetRNC_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_TargetRNC_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TargetRNC_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TargetRNC_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_TargetRNC_ID_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_TargetRNC_ID_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_TargetRNC_ID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TargetRNC-ID.h b/src/ranap/RANAP_TargetRNC-ID.h
new file mode 100644
index 0000000..e4bce7e
--- /dev/null
+++ b/src/ranap/RANAP_TargetRNC-ID.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TargetRNC_ID_H_
+#define	_RANAP_TargetRNC_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_LAI.h"
+#include "RANAP_RAC.h"
+#include "RANAP_RNC-ID.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TargetRNC-ID */
+typedef struct RANAP_TargetRNC_ID {
+	RANAP_LAI_t	 lAI;
+	RANAP_RAC_t	*rAC	/* OPTIONAL */;
+	RANAP_RNC_ID_t	 rNC_ID;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_TargetRNC_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TargetRNC_ID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TargetRNC_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.c b/src/ranap/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.c
new file mode 100644
index 0000000..c7aec3a
--- /dev/null
+++ b/src/ranap/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TargetRNC-ToSourceRNC-TransparentContainer.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TargetRNC_ToSourceRNC_TransparentContainer, rRC_Container),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RRC_Container,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rRC-Container"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_TargetRNC_ToSourceRNC_TransparentContainer, d_RNTI),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_D_RNTI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"d-RNTI"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_TargetRNC_ToSourceRNC_TransparentContainer, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rRC-Container */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* d-RNTI */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_specs_1 = {
+	sizeof(struct RANAP_TargetRNC_ToSourceRNC_TransparentContainer),
+	offsetof(struct RANAP_TargetRNC_ToSourceRNC_TransparentContainer, _asn_ctx),
+	asn_MAP_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer = {
+	"RANAP_TargetRNC-ToSourceRNC-TransparentContainer",
+	"RANAP_TargetRNC-ToSourceRNC-TransparentContainer",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tags_1,
+	sizeof(asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.h b/src/ranap/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.h
new file mode 100644
index 0000000..11b4ac0
--- /dev/null
+++ b/src/ranap/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_H_
+#define	_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_RRC-Container.h"
+#include "RANAP_D-RNTI.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TargetRNC-ToSourceRNC-TransparentContainer */
+typedef struct RANAP_TargetRNC_ToSourceRNC_TransparentContainer {
+	RANAP_RRC_Container_t	 rRC_Container;
+	RANAP_D_RNTI_t	*d_RNTI	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_TargetRNC_ToSourceRNC_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TargetRNC_ToSourceRNC_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.c b/src/ranap/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.c
new file mode 100644
index 0000000..40ec851
--- /dev/null
+++ b/src/ranap/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.h"
+
+int
+RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer = {
+	"RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer",
+	"RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer",
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_free,
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_print,
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_constraint,
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_decode_ber,
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_encode_der,
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_decode_xer,
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_encode_xer,
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_decode_uper,
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_encode_uper,
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_decode_aper,
+	RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_tags_1,
+	sizeof(asn_DEF_RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.h b/src/ranap/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.h
new file mode 100644
index 0000000..82f02cd
--- /dev/null
+++ b/src/ranap/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_H_
+#define	_RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer */
+typedef OCTET_STRING_t	 RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer;
+asn_struct_free_f RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_free;
+asn_struct_print_f RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_print;
+asn_constr_check_f RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_constraint;
+ber_type_decoder_f RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_decode_ber;
+der_type_encoder_f RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_encode_der;
+xer_type_decoder_f RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_decode_xer;
+xer_type_encoder_f RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_encode_xer;
+per_type_decoder_f RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_decode_uper;
+per_type_encoder_f RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_encode_uper;
+per_type_decoder_f RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_decode_aper;
+per_type_encoder_f RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TargeteNodeB_ToSourceeNodeB_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TemporaryUE-ID.c b/src/ranap/RANAP_TemporaryUE-ID.c
new file mode 100644
index 0000000..4d2fa89
--- /dev/null
+++ b/src/ranap/RANAP_TemporaryUE-ID.c
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TemporaryUE-ID.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_TemporaryUE_ID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_TemporaryUE_ID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TemporaryUE_ID, choice.tMSI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TMSI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"tMSI"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TemporaryUE_ID, choice.p_TMSI),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_P_TMSI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"p-TMSI"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_TemporaryUE_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tMSI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* p-TMSI */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_TemporaryUE_ID_specs_1 = {
+	sizeof(struct RANAP_TemporaryUE_ID),
+	offsetof(struct RANAP_TemporaryUE_ID, _asn_ctx),
+	offsetof(struct RANAP_TemporaryUE_ID, present),
+	sizeof(((struct RANAP_TemporaryUE_ID *)0)->present),
+	asn_MAP_RANAP_TemporaryUE_ID_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TemporaryUE_ID = {
+	"RANAP_TemporaryUE-ID",
+	"RANAP_TemporaryUE-ID",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_TemporaryUE_ID_constr_1,
+	asn_MBR_RANAP_TemporaryUE_ID_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_TemporaryUE_ID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TemporaryUE-ID.h b/src/ranap/RANAP_TemporaryUE-ID.h
new file mode 100644
index 0000000..37face9
--- /dev/null
+++ b/src/ranap/RANAP_TemporaryUE-ID.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TemporaryUE_ID_H_
+#define	_RANAP_TemporaryUE_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_TMSI.h"
+#include "RANAP_P-TMSI.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_TemporaryUE_ID_PR {
+	RANAP_TemporaryUE_ID_PR_NOTHING,	/* No components present */
+	RANAP_TemporaryUE_ID_PR_tMSI,
+	RANAP_TemporaryUE_ID_PR_p_TMSI,
+	/* Extensions may appear below */
+	
+} RANAP_TemporaryUE_ID_PR;
+
+/* RANAP_TemporaryUE-ID */
+typedef struct RANAP_TemporaryUE_ID {
+	RANAP_TemporaryUE_ID_PR present;
+	union RANAP_TemporaryUE_ID_u {
+		RANAP_TMSI_t	 tMSI;
+		RANAP_P_TMSI_t	 p_TMSI;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_TemporaryUE_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TemporaryUE_ID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TemporaryUE_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Time-UE-StayedInCell-EnhancedGranularity.c b/src/ranap/RANAP_Time-UE-StayedInCell-EnhancedGranularity.c
new file mode 100644
index 0000000..25c7953
--- /dev/null
+++ b/src/ranap/RANAP_Time-UE-StayedInCell-EnhancedGranularity.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Time-UE-StayedInCell-EnhancedGranularity.h"
+
+int
+RANAP_Time_UE_StayedInCell_EnhancedGranularity_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 40950l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Time_UE_StayedInCell_EnhancedGranularity_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_Time_UE_StayedInCell_EnhancedGranularity_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Time_UE_StayedInCell_EnhancedGranularity_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Time_UE_StayedInCell_EnhancedGranularity_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Time_UE_StayedInCell_EnhancedGranularity_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Time_UE_StayedInCell_EnhancedGranularity_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Time_UE_StayedInCell_EnhancedGranularity_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Time_UE_StayedInCell_EnhancedGranularity_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Time_UE_StayedInCell_EnhancedGranularity_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Time_UE_StayedInCell_EnhancedGranularity_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Time_UE_StayedInCell_EnhancedGranularity_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Time_UE_StayedInCell_EnhancedGranularity_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0l,  40950l }	/* (0..40950) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Time_UE_StayedInCell_EnhancedGranularity_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Time_UE_StayedInCell_EnhancedGranularity = {
+	"RANAP_Time-UE-StayedInCell-EnhancedGranularity",
+	"RANAP_Time-UE-StayedInCell-EnhancedGranularity",
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_free,
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_print,
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_constraint,
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_decode_ber,
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_encode_der,
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_decode_xer,
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_encode_xer,
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_decode_uper,
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_encode_uper,
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_decode_aper,
+	RANAP_Time_UE_StayedInCell_EnhancedGranularity_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Time_UE_StayedInCell_EnhancedGranularity_tags_1,
+	sizeof(asn_DEF_RANAP_Time_UE_StayedInCell_EnhancedGranularity_tags_1)
+		/sizeof(asn_DEF_RANAP_Time_UE_StayedInCell_EnhancedGranularity_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Time_UE_StayedInCell_EnhancedGranularity_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Time_UE_StayedInCell_EnhancedGranularity_tags_1)
+		/sizeof(asn_DEF_RANAP_Time_UE_StayedInCell_EnhancedGranularity_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Time_UE_StayedInCell_EnhancedGranularity_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_Time-UE-StayedInCell-EnhancedGranularity.h b/src/ranap/RANAP_Time-UE-StayedInCell-EnhancedGranularity.h
new file mode 100644
index 0000000..f525d6a
--- /dev/null
+++ b/src/ranap/RANAP_Time-UE-StayedInCell-EnhancedGranularity.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Time_UE_StayedInCell_EnhancedGranularity_H_
+#define	_RANAP_Time_UE_StayedInCell_EnhancedGranularity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Time-UE-StayedInCell-EnhancedGranularity */
+typedef long	 RANAP_Time_UE_StayedInCell_EnhancedGranularity_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Time_UE_StayedInCell_EnhancedGranularity;
+asn_struct_free_f RANAP_Time_UE_StayedInCell_EnhancedGranularity_free;
+asn_struct_print_f RANAP_Time_UE_StayedInCell_EnhancedGranularity_print;
+asn_constr_check_f RANAP_Time_UE_StayedInCell_EnhancedGranularity_constraint;
+ber_type_decoder_f RANAP_Time_UE_StayedInCell_EnhancedGranularity_decode_ber;
+der_type_encoder_f RANAP_Time_UE_StayedInCell_EnhancedGranularity_encode_der;
+xer_type_decoder_f RANAP_Time_UE_StayedInCell_EnhancedGranularity_decode_xer;
+xer_type_encoder_f RANAP_Time_UE_StayedInCell_EnhancedGranularity_encode_xer;
+per_type_decoder_f RANAP_Time_UE_StayedInCell_EnhancedGranularity_decode_uper;
+per_type_encoder_f RANAP_Time_UE_StayedInCell_EnhancedGranularity_encode_uper;
+per_type_decoder_f RANAP_Time_UE_StayedInCell_EnhancedGranularity_decode_aper;
+per_type_encoder_f RANAP_Time_UE_StayedInCell_EnhancedGranularity_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Time_UE_StayedInCell_EnhancedGranularity_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_Time-UE-StayedInCell.c b/src/ranap/RANAP_Time-UE-StayedInCell.c
new file mode 100644
index 0000000..a869a7d
--- /dev/null
+++ b/src/ranap/RANAP_Time-UE-StayedInCell.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_Time-UE-StayedInCell.h"
+
+int
+RANAP_Time_UE_StayedInCell_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 4095l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_Time_UE_StayedInCell_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_Time_UE_StayedInCell_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_Time_UE_StayedInCell_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_Time_UE_StayedInCell_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Time_UE_StayedInCell_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Time_UE_StayedInCell_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_Time_UE_StayedInCell_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_Time_UE_StayedInCell_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Time_UE_StayedInCell_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Time_UE_StayedInCell_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_Time_UE_StayedInCell_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_Time_UE_StayedInCell_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_Time_UE_StayedInCell_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_Time_UE_StayedInCell_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Time_UE_StayedInCell_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_Time_UE_StayedInCell_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Time_UE_StayedInCell_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_Time_UE_StayedInCell_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_Time_UE_StayedInCell_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_Time_UE_StayedInCell_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_Time_UE_StayedInCell_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_Time_UE_StayedInCell_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 12,  12,  0l,  4095l }	/* (0..4095) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_Time_UE_StayedInCell_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Time_UE_StayedInCell = {
+	"RANAP_Time-UE-StayedInCell",
+	"RANAP_Time-UE-StayedInCell",
+	RANAP_Time_UE_StayedInCell_free,
+	RANAP_Time_UE_StayedInCell_print,
+	RANAP_Time_UE_StayedInCell_constraint,
+	RANAP_Time_UE_StayedInCell_decode_ber,
+	RANAP_Time_UE_StayedInCell_encode_der,
+	RANAP_Time_UE_StayedInCell_decode_xer,
+	RANAP_Time_UE_StayedInCell_encode_xer,
+	RANAP_Time_UE_StayedInCell_decode_uper,
+	RANAP_Time_UE_StayedInCell_encode_uper,
+	RANAP_Time_UE_StayedInCell_decode_aper,
+	RANAP_Time_UE_StayedInCell_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_Time_UE_StayedInCell_tags_1,
+	sizeof(asn_DEF_RANAP_Time_UE_StayedInCell_tags_1)
+		/sizeof(asn_DEF_RANAP_Time_UE_StayedInCell_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Time_UE_StayedInCell_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Time_UE_StayedInCell_tags_1)
+		/sizeof(asn_DEF_RANAP_Time_UE_StayedInCell_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_Time_UE_StayedInCell_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_Time-UE-StayedInCell.h b/src/ranap/RANAP_Time-UE-StayedInCell.h
new file mode 100644
index 0000000..d87a899
--- /dev/null
+++ b/src/ranap/RANAP_Time-UE-StayedInCell.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_Time_UE_StayedInCell_H_
+#define	_RANAP_Time_UE_StayedInCell_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_Time-UE-StayedInCell */
+typedef long	 RANAP_Time_UE_StayedInCell_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_Time_UE_StayedInCell;
+asn_struct_free_f RANAP_Time_UE_StayedInCell_free;
+asn_struct_print_f RANAP_Time_UE_StayedInCell_print;
+asn_constr_check_f RANAP_Time_UE_StayedInCell_constraint;
+ber_type_decoder_f RANAP_Time_UE_StayedInCell_decode_ber;
+der_type_encoder_f RANAP_Time_UE_StayedInCell_encode_der;
+xer_type_decoder_f RANAP_Time_UE_StayedInCell_decode_xer;
+xer_type_encoder_f RANAP_Time_UE_StayedInCell_encode_xer;
+per_type_decoder_f RANAP_Time_UE_StayedInCell_decode_uper;
+per_type_encoder_f RANAP_Time_UE_StayedInCell_encode_uper;
+per_type_decoder_f RANAP_Time_UE_StayedInCell_decode_aper;
+per_type_encoder_f RANAP_Time_UE_StayedInCell_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_Time_UE_StayedInCell_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TimeToMBMSDataTransfer.c b/src/ranap/RANAP_TimeToMBMSDataTransfer.c
new file mode 100644
index 0000000..c6e7c4d
--- /dev/null
+++ b/src/ranap/RANAP_TimeToMBMSDataTransfer.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TimeToMBMSDataTransfer.h"
+
+int
+RANAP_TimeToMBMSDataTransfer_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 1l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TimeToMBMSDataTransfer_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_TimeToMBMSDataTransfer_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TimeToMBMSDataTransfer_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TimeToMBMSDataTransfer_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TimeToMBMSDataTransfer_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TimeToMBMSDataTransfer_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TimeToMBMSDataTransfer_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TimeToMBMSDataTransfer_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TimeToMBMSDataTransfer_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TimeToMBMSDataTransfer_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TimeToMBMSDataTransfer_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TimeToMBMSDataTransfer_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TimeToMBMSDataTransfer_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TimeToMBMSDataTransfer_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TimeToMBMSDataTransfer_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TimeToMBMSDataTransfer_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TimeToMBMSDataTransfer_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TimeToMBMSDataTransfer_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TimeToMBMSDataTransfer_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TimeToMBMSDataTransfer_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TimeToMBMSDataTransfer_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_TimeToMBMSDataTransfer_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  1l,  1l }	/* (SIZE(1..1)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TimeToMBMSDataTransfer_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TimeToMBMSDataTransfer = {
+	"RANAP_TimeToMBMSDataTransfer",
+	"RANAP_TimeToMBMSDataTransfer",
+	RANAP_TimeToMBMSDataTransfer_free,
+	RANAP_TimeToMBMSDataTransfer_print,
+	RANAP_TimeToMBMSDataTransfer_constraint,
+	RANAP_TimeToMBMSDataTransfer_decode_ber,
+	RANAP_TimeToMBMSDataTransfer_encode_der,
+	RANAP_TimeToMBMSDataTransfer_decode_xer,
+	RANAP_TimeToMBMSDataTransfer_encode_xer,
+	RANAP_TimeToMBMSDataTransfer_decode_uper,
+	RANAP_TimeToMBMSDataTransfer_encode_uper,
+	RANAP_TimeToMBMSDataTransfer_decode_aper,
+	RANAP_TimeToMBMSDataTransfer_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TimeToMBMSDataTransfer_tags_1,
+	sizeof(asn_DEF_RANAP_TimeToMBMSDataTransfer_tags_1)
+		/sizeof(asn_DEF_RANAP_TimeToMBMSDataTransfer_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TimeToMBMSDataTransfer_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TimeToMBMSDataTransfer_tags_1)
+		/sizeof(asn_DEF_RANAP_TimeToMBMSDataTransfer_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TimeToMBMSDataTransfer_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_TimeToMBMSDataTransfer.h b/src/ranap/RANAP_TimeToMBMSDataTransfer.h
new file mode 100644
index 0000000..31ede6e
--- /dev/null
+++ b/src/ranap/RANAP_TimeToMBMSDataTransfer.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TimeToMBMSDataTransfer_H_
+#define	_RANAP_TimeToMBMSDataTransfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TimeToMBMSDataTransfer */
+typedef OCTET_STRING_t	 RANAP_TimeToMBMSDataTransfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TimeToMBMSDataTransfer;
+asn_struct_free_f RANAP_TimeToMBMSDataTransfer_free;
+asn_struct_print_f RANAP_TimeToMBMSDataTransfer_print;
+asn_constr_check_f RANAP_TimeToMBMSDataTransfer_constraint;
+ber_type_decoder_f RANAP_TimeToMBMSDataTransfer_decode_ber;
+der_type_encoder_f RANAP_TimeToMBMSDataTransfer_encode_der;
+xer_type_decoder_f RANAP_TimeToMBMSDataTransfer_decode_xer;
+xer_type_encoder_f RANAP_TimeToMBMSDataTransfer_encode_xer;
+per_type_decoder_f RANAP_TimeToMBMSDataTransfer_decode_uper;
+per_type_encoder_f RANAP_TimeToMBMSDataTransfer_encode_uper;
+per_type_decoder_f RANAP_TimeToMBMSDataTransfer_decode_aper;
+per_type_encoder_f RANAP_TimeToMBMSDataTransfer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TimeToMBMSDataTransfer_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TimingDifferenceULDL.c b/src/ranap/RANAP_TimingDifferenceULDL.c
new file mode 100644
index 0000000..3845e82
--- /dev/null
+++ b/src/ranap/RANAP_TimingDifferenceULDL.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TimingDifferenceULDL.h"
+
+int
+RANAP_TimingDifferenceULDL_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 1l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TimingDifferenceULDL_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_TimingDifferenceULDL_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TimingDifferenceULDL_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TimingDifferenceULDL_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TimingDifferenceULDL_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TimingDifferenceULDL_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TimingDifferenceULDL_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TimingDifferenceULDL_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TimingDifferenceULDL_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TimingDifferenceULDL_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TimingDifferenceULDL_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TimingDifferenceULDL_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TimingDifferenceULDL_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TimingDifferenceULDL_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TimingDifferenceULDL_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TimingDifferenceULDL_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TimingDifferenceULDL_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TimingDifferenceULDL_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TimingDifferenceULDL_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TimingDifferenceULDL_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TimingDifferenceULDL_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_TimingDifferenceULDL_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  1l,  1l }	/* (SIZE(1..1)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TimingDifferenceULDL_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TimingDifferenceULDL = {
+	"RANAP_TimingDifferenceULDL",
+	"RANAP_TimingDifferenceULDL",
+	RANAP_TimingDifferenceULDL_free,
+	RANAP_TimingDifferenceULDL_print,
+	RANAP_TimingDifferenceULDL_constraint,
+	RANAP_TimingDifferenceULDL_decode_ber,
+	RANAP_TimingDifferenceULDL_encode_der,
+	RANAP_TimingDifferenceULDL_decode_xer,
+	RANAP_TimingDifferenceULDL_encode_xer,
+	RANAP_TimingDifferenceULDL_decode_uper,
+	RANAP_TimingDifferenceULDL_encode_uper,
+	RANAP_TimingDifferenceULDL_decode_aper,
+	RANAP_TimingDifferenceULDL_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TimingDifferenceULDL_tags_1,
+	sizeof(asn_DEF_RANAP_TimingDifferenceULDL_tags_1)
+		/sizeof(asn_DEF_RANAP_TimingDifferenceULDL_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TimingDifferenceULDL_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TimingDifferenceULDL_tags_1)
+		/sizeof(asn_DEF_RANAP_TimingDifferenceULDL_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TimingDifferenceULDL_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_TimingDifferenceULDL.h b/src/ranap/RANAP_TimingDifferenceULDL.h
new file mode 100644
index 0000000..7497493
--- /dev/null
+++ b/src/ranap/RANAP_TimingDifferenceULDL.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TimingDifferenceULDL_H_
+#define	_RANAP_TimingDifferenceULDL_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TimingDifferenceULDL */
+typedef OCTET_STRING_t	 RANAP_TimingDifferenceULDL_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TimingDifferenceULDL;
+asn_struct_free_f RANAP_TimingDifferenceULDL_free;
+asn_struct_print_f RANAP_TimingDifferenceULDL_print;
+asn_constr_check_f RANAP_TimingDifferenceULDL_constraint;
+ber_type_decoder_f RANAP_TimingDifferenceULDL_decode_ber;
+der_type_encoder_f RANAP_TimingDifferenceULDL_encode_der;
+xer_type_decoder_f RANAP_TimingDifferenceULDL_decode_xer;
+xer_type_encoder_f RANAP_TimingDifferenceULDL_encode_xer;
+per_type_decoder_f RANAP_TimingDifferenceULDL_decode_uper;
+per_type_encoder_f RANAP_TimingDifferenceULDL_encode_uper;
+per_type_decoder_f RANAP_TimingDifferenceULDL_decode_aper;
+per_type_encoder_f RANAP_TimingDifferenceULDL_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TimingDifferenceULDL_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TrCH-ID-List.c b/src/ranap/RANAP_TrCH-ID-List.c
new file mode 100644
index 0000000..1509605
--- /dev/null
+++ b/src/ranap/RANAP_TrCH-ID-List.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TrCH-ID-List.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_TrCH_ID_List_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 3,  3,  1l,  7l }	/* (SIZE(1..7)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_TrCH_ID_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_TrCH_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TrCH_ID_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_RANAP_TrCH_ID_List_specs_1 = {
+	sizeof(struct RANAP_TrCH_ID_List),
+	offsetof(struct RANAP_TrCH_ID_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TrCH_ID_List = {
+	"RANAP_TrCH-ID-List",
+	"RANAP_TrCH-ID-List",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TrCH_ID_List_tags_1,
+	sizeof(asn_DEF_RANAP_TrCH_ID_List_tags_1)
+		/sizeof(asn_DEF_RANAP_TrCH_ID_List_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TrCH_ID_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TrCH_ID_List_tags_1)
+		/sizeof(asn_DEF_RANAP_TrCH_ID_List_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TrCH_ID_List_constr_1,
+	asn_MBR_RANAP_TrCH_ID_List_1,
+	1,	/* Single element */
+	&asn_SPC_RANAP_TrCH_ID_List_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TrCH-ID-List.h b/src/ranap/RANAP_TrCH-ID-List.h
new file mode 100644
index 0000000..b474910
--- /dev/null
+++ b/src/ranap/RANAP_TrCH-ID-List.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TrCH_ID_List_H_
+#define	_RANAP_TrCH_ID_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_TrCH-ID.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TrCH-ID-List */
+typedef struct RANAP_TrCH_ID_List {
+	A_SEQUENCE_OF(RANAP_TrCH_ID_t) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_TrCH_ID_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TrCH_ID_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TrCH_ID_List_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TrCH-ID.c b/src/ranap/RANAP_TrCH-ID.c
new file mode 100644
index 0000000..b4d7ce6
--- /dev/null
+++ b/src/ranap/RANAP_TrCH-ID.c
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TrCH-ID.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_TrCH_ID_1[] = {
+	{ ATF_POINTER, 4, offsetof(struct RANAP_TrCH_ID, dCH_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_DCH_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"dCH-ID"
+		},
+	{ ATF_POINTER, 3, offsetof(struct RANAP_TrCH_ID, dSCH_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_DSCH_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"dSCH-ID"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_TrCH_ID, uSCH_ID),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_USCH_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"uSCH-ID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_TrCH_ID, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_TrCH_ID_oms_1[] = { 0, 1, 2, 3 };
+static const ber_tlv_tag_t asn_DEF_RANAP_TrCH_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_TrCH_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dCH-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dSCH-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uSCH-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_TrCH_ID_specs_1 = {
+	sizeof(struct RANAP_TrCH_ID),
+	offsetof(struct RANAP_TrCH_ID, _asn_ctx),
+	asn_MAP_RANAP_TrCH_ID_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_TrCH_ID_oms_1,	/* Optional members */
+	4, 0,	/* Root/Additions */
+	3,	/* Start extensions */
+	5	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TrCH_ID = {
+	"RANAP_TrCH-ID",
+	"RANAP_TrCH-ID",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TrCH_ID_tags_1,
+	sizeof(asn_DEF_RANAP_TrCH_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_TrCH_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TrCH_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TrCH_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_TrCH_ID_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_TrCH_ID_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_TrCH_ID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TrCH-ID.h b/src/ranap/RANAP_TrCH-ID.h
new file mode 100644
index 0000000..09501b8
--- /dev/null
+++ b/src/ranap/RANAP_TrCH-ID.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TrCH_ID_H_
+#define	_RANAP_TrCH_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_DCH-ID.h"
+#include "RANAP_DSCH-ID.h"
+#include "RANAP_USCH-ID.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TrCH-ID */
+typedef struct RANAP_TrCH_ID {
+	RANAP_DCH_ID_t	*dCH_ID	/* OPTIONAL */;
+	RANAP_DSCH_ID_t	*dSCH_ID	/* OPTIONAL */;
+	RANAP_USCH_ID_t	*uSCH_ID	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_TrCH_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TrCH_ID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TrCH_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TraceDepth.c b/src/ranap/RANAP_TraceDepth.c
new file mode 100644
index 0000000..9d4e35e
--- /dev/null
+++ b/src/ranap/RANAP_TraceDepth.c
@@ -0,0 +1,169 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TraceDepth.h"
+
+int
+RANAP_TraceDepth_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TraceDepth_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_TraceDepth_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TraceDepth_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TraceDepth_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TraceDepth_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TraceDepth_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TraceDepth_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TraceDepth_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TraceDepth_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TraceDepth_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TraceDepth_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TraceDepth_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TraceDepth_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TraceDepth_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TraceDepth_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TraceDepth_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TraceDepth_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TraceDepth_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TraceDepth_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TraceDepth_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TraceDepth_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_TraceDepth_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  2l }	/* (0..2,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_TraceDepth_value2enum_1[] = {
+	{ 0,	7,	"minimum" },
+	{ 1,	6,	"medium" },
+	{ 2,	7,	"maximum" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_TraceDepth_enum2value_1[] = {
+	2,	/* maximum(2) */
+	1,	/* medium(1) */
+	0	/* minimum(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_TraceDepth_specs_1 = {
+	asn_MAP_RANAP_TraceDepth_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_TraceDepth_enum2value_1,	/* N => "tag"; sorted by N */
+	3,	/* Number of elements in the maps */
+	4,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TraceDepth_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TraceDepth = {
+	"RANAP_TraceDepth",
+	"RANAP_TraceDepth",
+	RANAP_TraceDepth_free,
+	RANAP_TraceDepth_print,
+	RANAP_TraceDepth_constraint,
+	RANAP_TraceDepth_decode_ber,
+	RANAP_TraceDepth_encode_der,
+	RANAP_TraceDepth_decode_xer,
+	RANAP_TraceDepth_encode_xer,
+	RANAP_TraceDepth_decode_uper,
+	RANAP_TraceDepth_encode_uper,
+	RANAP_TraceDepth_decode_aper,
+	RANAP_TraceDepth_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TraceDepth_tags_1,
+	sizeof(asn_DEF_RANAP_TraceDepth_tags_1)
+		/sizeof(asn_DEF_RANAP_TraceDepth_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TraceDepth_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TraceDepth_tags_1)
+		/sizeof(asn_DEF_RANAP_TraceDepth_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TraceDepth_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_TraceDepth_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TraceDepth.h b/src/ranap/RANAP_TraceDepth.h
new file mode 100644
index 0000000..4bad74d
--- /dev/null
+++ b/src/ranap/RANAP_TraceDepth.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TraceDepth_H_
+#define	_RANAP_TraceDepth_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_TraceDepth {
+	RANAP_TraceDepth_minimum	= 0,
+	RANAP_TraceDepth_medium	= 1,
+	RANAP_TraceDepth_maximum	= 2
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_TraceDepth;
+
+/* RANAP_TraceDepth */
+typedef long	 RANAP_TraceDepth_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TraceDepth;
+asn_struct_free_f RANAP_TraceDepth_free;
+asn_struct_print_f RANAP_TraceDepth_print;
+asn_constr_check_f RANAP_TraceDepth_constraint;
+ber_type_decoder_f RANAP_TraceDepth_decode_ber;
+der_type_encoder_f RANAP_TraceDepth_encode_der;
+xer_type_decoder_f RANAP_TraceDepth_decode_xer;
+xer_type_encoder_f RANAP_TraceDepth_encode_xer;
+per_type_decoder_f RANAP_TraceDepth_decode_uper;
+per_type_encoder_f RANAP_TraceDepth_encode_uper;
+per_type_decoder_f RANAP_TraceDepth_decode_aper;
+per_type_encoder_f RANAP_TraceDepth_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TraceDepth_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TraceInformation.c b/src/ranap/RANAP_TraceInformation.c
new file mode 100644
index 0000000..dd3a1e6
--- /dev/null
+++ b/src/ranap/RANAP_TraceInformation.c
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TraceInformation.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_TraceInformation_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TraceInformation, traceReference),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TraceReference,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"traceReference"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TraceInformation, ue_identity),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANAP_UE_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"ue-identity"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_TraceInformation, tracePropagationParameters),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TracePropagationParameters,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"tracePropagationParameters"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_TraceInformation, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_TraceInformation_oms_1[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_RANAP_TraceInformation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_TraceInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* traceReference */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ue-identity */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* tracePropagationParameters */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_TraceInformation_specs_1 = {
+	sizeof(struct RANAP_TraceInformation),
+	offsetof(struct RANAP_TraceInformation, _asn_ctx),
+	asn_MAP_RANAP_TraceInformation_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_TraceInformation_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	3,	/* Start extensions */
+	5	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TraceInformation = {
+	"RANAP_TraceInformation",
+	"RANAP_TraceInformation",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TraceInformation_tags_1,
+	sizeof(asn_DEF_RANAP_TraceInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_TraceInformation_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TraceInformation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TraceInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_TraceInformation_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_TraceInformation_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_TraceInformation_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TraceInformation.h b/src/ranap/RANAP_TraceInformation.h
new file mode 100644
index 0000000..dcb2fc0
--- /dev/null
+++ b/src/ranap/RANAP_TraceInformation.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TraceInformation_H_
+#define	_RANAP_TraceInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_TraceReference.h"
+#include "RANAP_UE-ID.h"
+#include "RANAP_TracePropagationParameters.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TraceInformation */
+typedef struct RANAP_TraceInformation {
+	RANAP_TraceReference_t	 traceReference;
+	RANAP_UE_ID_t	 ue_identity;
+	RANAP_TracePropagationParameters_t	*tracePropagationParameters	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_TraceInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TraceInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TraceInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TracePropagationParameters.c b/src/ranap/RANAP_TracePropagationParameters.c
new file mode 100644
index 0000000..a09f7d0
--- /dev/null
+++ b/src/ranap/RANAP_TracePropagationParameters.c
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TracePropagationParameters.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_TracePropagationParameters_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TracePropagationParameters, traceRecordingSessionReference),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TraceRecordingSessionReference,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"traceRecordingSessionReference"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TracePropagationParameters, traceDepth),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TraceDepth,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"traceDepth"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_TracePropagationParameters, listOfInterfacesToTrace),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ListOfInterfacesToTrace,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"listOfInterfacesToTrace"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_TracePropagationParameters, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_TracePropagationParameters_oms_1[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_RANAP_TracePropagationParameters_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_TracePropagationParameters_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* traceRecordingSessionReference */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* traceDepth */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* listOfInterfacesToTrace */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_TracePropagationParameters_specs_1 = {
+	sizeof(struct RANAP_TracePropagationParameters),
+	offsetof(struct RANAP_TracePropagationParameters, _asn_ctx),
+	asn_MAP_RANAP_TracePropagationParameters_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANAP_TracePropagationParameters_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	3,	/* Start extensions */
+	5	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TracePropagationParameters = {
+	"RANAP_TracePropagationParameters",
+	"RANAP_TracePropagationParameters",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TracePropagationParameters_tags_1,
+	sizeof(asn_DEF_RANAP_TracePropagationParameters_tags_1)
+		/sizeof(asn_DEF_RANAP_TracePropagationParameters_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TracePropagationParameters_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TracePropagationParameters_tags_1)
+		/sizeof(asn_DEF_RANAP_TracePropagationParameters_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_TracePropagationParameters_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_TracePropagationParameters_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TracePropagationParameters.h b/src/ranap/RANAP_TracePropagationParameters.h
new file mode 100644
index 0000000..2ff5640
--- /dev/null
+++ b/src/ranap/RANAP_TracePropagationParameters.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TracePropagationParameters_H_
+#define	_RANAP_TracePropagationParameters_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_TraceRecordingSessionReference.h"
+#include "RANAP_TraceDepth.h"
+#include "RANAP_ListOfInterfacesToTrace.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TracePropagationParameters */
+typedef struct RANAP_TracePropagationParameters {
+	RANAP_TraceRecordingSessionReference_t	 traceRecordingSessionReference;
+	RANAP_TraceDepth_t	 traceDepth;
+	RANAP_ListOfInterfacesToTrace_t	*listOfInterfacesToTrace	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_TracePropagationParameters_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TracePropagationParameters;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TracePropagationParameters_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TraceRecordingSessionInformation.c b/src/ranap/RANAP_TraceRecordingSessionInformation.c
new file mode 100644
index 0000000..1fd2e4c
--- /dev/null
+++ b/src/ranap/RANAP_TraceRecordingSessionInformation.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TraceRecordingSessionInformation.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_TraceRecordingSessionInformation_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TraceRecordingSessionInformation, traceReference),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TraceReference,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"traceReference"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TraceRecordingSessionInformation, traceRecordingSessionReference),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TraceRecordingSessionReference,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"traceRecordingSessionReference"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_TraceRecordingSessionInformation, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_TraceRecordingSessionInformation_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_TraceRecordingSessionInformation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_TraceRecordingSessionInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* traceReference */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* traceRecordingSessionReference */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_TraceRecordingSessionInformation_specs_1 = {
+	sizeof(struct RANAP_TraceRecordingSessionInformation),
+	offsetof(struct RANAP_TraceRecordingSessionInformation, _asn_ctx),
+	asn_MAP_RANAP_TraceRecordingSessionInformation_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_TraceRecordingSessionInformation_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TraceRecordingSessionInformation = {
+	"RANAP_TraceRecordingSessionInformation",
+	"RANAP_TraceRecordingSessionInformation",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TraceRecordingSessionInformation_tags_1,
+	sizeof(asn_DEF_RANAP_TraceRecordingSessionInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_TraceRecordingSessionInformation_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TraceRecordingSessionInformation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TraceRecordingSessionInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_TraceRecordingSessionInformation_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_TraceRecordingSessionInformation_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_TraceRecordingSessionInformation_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TraceRecordingSessionInformation.h b/src/ranap/RANAP_TraceRecordingSessionInformation.h
new file mode 100644
index 0000000..76c4d8e
--- /dev/null
+++ b/src/ranap/RANAP_TraceRecordingSessionInformation.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TraceRecordingSessionInformation_H_
+#define	_RANAP_TraceRecordingSessionInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_TraceReference.h"
+#include "RANAP_TraceRecordingSessionReference.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TraceRecordingSessionInformation */
+typedef struct RANAP_TraceRecordingSessionInformation {
+	RANAP_TraceReference_t	 traceReference;
+	RANAP_TraceRecordingSessionReference_t	 traceRecordingSessionReference;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_TraceRecordingSessionInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TraceRecordingSessionInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TraceRecordingSessionInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TraceRecordingSessionReference.c b/src/ranap/RANAP_TraceRecordingSessionReference.c
new file mode 100644
index 0000000..0c02124
--- /dev/null
+++ b/src/ranap/RANAP_TraceRecordingSessionReference.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TraceRecordingSessionReference.h"
+
+int
+RANAP_TraceRecordingSessionReference_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 65535l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TraceRecordingSessionReference_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_TraceRecordingSessionReference_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TraceRecordingSessionReference_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TraceRecordingSessionReference_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TraceRecordingSessionReference_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TraceRecordingSessionReference_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TraceRecordingSessionReference_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TraceRecordingSessionReference_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TraceRecordingSessionReference_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TraceRecordingSessionReference_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TraceRecordingSessionReference_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TraceRecordingSessionReference_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TraceRecordingSessionReference_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TraceRecordingSessionReference_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TraceRecordingSessionReference_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TraceRecordingSessionReference_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TraceRecordingSessionReference_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TraceRecordingSessionReference_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TraceRecordingSessionReference_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TraceRecordingSessionReference_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TraceRecordingSessionReference_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_TraceRecordingSessionReference_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TraceRecordingSessionReference_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TraceRecordingSessionReference = {
+	"RANAP_TraceRecordingSessionReference",
+	"RANAP_TraceRecordingSessionReference",
+	RANAP_TraceRecordingSessionReference_free,
+	RANAP_TraceRecordingSessionReference_print,
+	RANAP_TraceRecordingSessionReference_constraint,
+	RANAP_TraceRecordingSessionReference_decode_ber,
+	RANAP_TraceRecordingSessionReference_encode_der,
+	RANAP_TraceRecordingSessionReference_decode_xer,
+	RANAP_TraceRecordingSessionReference_encode_xer,
+	RANAP_TraceRecordingSessionReference_decode_uper,
+	RANAP_TraceRecordingSessionReference_encode_uper,
+	RANAP_TraceRecordingSessionReference_decode_aper,
+	RANAP_TraceRecordingSessionReference_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TraceRecordingSessionReference_tags_1,
+	sizeof(asn_DEF_RANAP_TraceRecordingSessionReference_tags_1)
+		/sizeof(asn_DEF_RANAP_TraceRecordingSessionReference_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TraceRecordingSessionReference_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TraceRecordingSessionReference_tags_1)
+		/sizeof(asn_DEF_RANAP_TraceRecordingSessionReference_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TraceRecordingSessionReference_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_TraceRecordingSessionReference.h b/src/ranap/RANAP_TraceRecordingSessionReference.h
new file mode 100644
index 0000000..7545987
--- /dev/null
+++ b/src/ranap/RANAP_TraceRecordingSessionReference.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TraceRecordingSessionReference_H_
+#define	_RANAP_TraceRecordingSessionReference_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TraceRecordingSessionReference */
+typedef long	 RANAP_TraceRecordingSessionReference_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TraceRecordingSessionReference;
+asn_struct_free_f RANAP_TraceRecordingSessionReference_free;
+asn_struct_print_f RANAP_TraceRecordingSessionReference_print;
+asn_constr_check_f RANAP_TraceRecordingSessionReference_constraint;
+ber_type_decoder_f RANAP_TraceRecordingSessionReference_decode_ber;
+der_type_encoder_f RANAP_TraceRecordingSessionReference_encode_der;
+xer_type_decoder_f RANAP_TraceRecordingSessionReference_decode_xer;
+xer_type_encoder_f RANAP_TraceRecordingSessionReference_encode_xer;
+per_type_decoder_f RANAP_TraceRecordingSessionReference_decode_uper;
+per_type_encoder_f RANAP_TraceRecordingSessionReference_encode_uper;
+per_type_decoder_f RANAP_TraceRecordingSessionReference_decode_aper;
+per_type_encoder_f RANAP_TraceRecordingSessionReference_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TraceRecordingSessionReference_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TraceReference.c b/src/ranap/RANAP_TraceReference.c
new file mode 100644
index 0000000..7dcac60
--- /dev/null
+++ b/src/ranap/RANAP_TraceReference.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TraceReference.h"
+
+int
+RANAP_TraceReference_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 2l && size <= 3l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TraceReference_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_TraceReference_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TraceReference_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TraceReference_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TraceReference_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TraceReference_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TraceReference_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TraceReference_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TraceReference_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TraceReference_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TraceReference_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TraceReference_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TraceReference_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TraceReference_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TraceReference_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TraceReference_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TraceReference_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TraceReference_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TraceReference_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TraceReference_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TraceReference_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_TraceReference_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 1,  1,  2l,  3l }	/* (SIZE(2..3)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TraceReference_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TraceReference = {
+	"RANAP_TraceReference",
+	"RANAP_TraceReference",
+	RANAP_TraceReference_free,
+	RANAP_TraceReference_print,
+	RANAP_TraceReference_constraint,
+	RANAP_TraceReference_decode_ber,
+	RANAP_TraceReference_encode_der,
+	RANAP_TraceReference_decode_xer,
+	RANAP_TraceReference_encode_xer,
+	RANAP_TraceReference_decode_uper,
+	RANAP_TraceReference_encode_uper,
+	RANAP_TraceReference_decode_aper,
+	RANAP_TraceReference_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TraceReference_tags_1,
+	sizeof(asn_DEF_RANAP_TraceReference_tags_1)
+		/sizeof(asn_DEF_RANAP_TraceReference_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TraceReference_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TraceReference_tags_1)
+		/sizeof(asn_DEF_RANAP_TraceReference_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TraceReference_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_TraceReference.h b/src/ranap/RANAP_TraceReference.h
new file mode 100644
index 0000000..ab3069d
--- /dev/null
+++ b/src/ranap/RANAP_TraceReference.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TraceReference_H_
+#define	_RANAP_TraceReference_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TraceReference */
+typedef OCTET_STRING_t	 RANAP_TraceReference_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TraceReference;
+asn_struct_free_f RANAP_TraceReference_free;
+asn_struct_print_f RANAP_TraceReference_print;
+asn_constr_check_f RANAP_TraceReference_constraint;
+ber_type_decoder_f RANAP_TraceReference_decode_ber;
+der_type_encoder_f RANAP_TraceReference_encode_der;
+xer_type_decoder_f RANAP_TraceReference_decode_xer;
+xer_type_encoder_f RANAP_TraceReference_encode_xer;
+per_type_decoder_f RANAP_TraceReference_decode_uper;
+per_type_encoder_f RANAP_TraceReference_encode_uper;
+per_type_decoder_f RANAP_TraceReference_decode_aper;
+per_type_encoder_f RANAP_TraceReference_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TraceReference_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TraceType.c b/src/ranap/RANAP_TraceType.c
new file mode 100644
index 0000000..536ee16
--- /dev/null
+++ b/src/ranap/RANAP_TraceType.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TraceType.h"
+
+int
+RANAP_TraceType_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 1l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TraceType_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_TraceType_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TraceType_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TraceType_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TraceType_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TraceType_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TraceType_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TraceType_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TraceType_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TraceType_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TraceType_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TraceType_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TraceType_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TraceType_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TraceType_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TraceType_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TraceType_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TraceType_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TraceType_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TraceType_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TraceType_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_TraceType_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  1l,  1l }	/* (SIZE(1..1)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TraceType_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TraceType = {
+	"RANAP_TraceType",
+	"RANAP_TraceType",
+	RANAP_TraceType_free,
+	RANAP_TraceType_print,
+	RANAP_TraceType_constraint,
+	RANAP_TraceType_decode_ber,
+	RANAP_TraceType_encode_der,
+	RANAP_TraceType_decode_xer,
+	RANAP_TraceType_encode_xer,
+	RANAP_TraceType_decode_uper,
+	RANAP_TraceType_encode_uper,
+	RANAP_TraceType_decode_aper,
+	RANAP_TraceType_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TraceType_tags_1,
+	sizeof(asn_DEF_RANAP_TraceType_tags_1)
+		/sizeof(asn_DEF_RANAP_TraceType_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TraceType_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TraceType_tags_1)
+		/sizeof(asn_DEF_RANAP_TraceType_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TraceType_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_TraceType.h b/src/ranap/RANAP_TraceType.h
new file mode 100644
index 0000000..1f1edb4
--- /dev/null
+++ b/src/ranap/RANAP_TraceType.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TraceType_H_
+#define	_RANAP_TraceType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TraceType */
+typedef OCTET_STRING_t	 RANAP_TraceType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TraceType;
+asn_struct_free_f RANAP_TraceType_free;
+asn_struct_print_f RANAP_TraceType_print;
+asn_constr_check_f RANAP_TraceType_constraint;
+ber_type_decoder_f RANAP_TraceType_decode_ber;
+der_type_encoder_f RANAP_TraceType_encode_der;
+xer_type_decoder_f RANAP_TraceType_decode_xer;
+xer_type_encoder_f RANAP_TraceType_encode_xer;
+per_type_decoder_f RANAP_TraceType_decode_uper;
+per_type_encoder_f RANAP_TraceType_encode_uper;
+per_type_decoder_f RANAP_TraceType_decode_aper;
+per_type_encoder_f RANAP_TraceType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TraceType_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TrafficClass.c b/src/ranap/RANAP_TrafficClass.c
new file mode 100644
index 0000000..f15e550
--- /dev/null
+++ b/src/ranap/RANAP_TrafficClass.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TrafficClass.h"
+
+int
+RANAP_TrafficClass_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TrafficClass_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_TrafficClass_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TrafficClass_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TrafficClass_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TrafficClass_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TrafficClass_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TrafficClass_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TrafficClass_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TrafficClass_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TrafficClass_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TrafficClass_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TrafficClass_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TrafficClass_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TrafficClass_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TrafficClass_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TrafficClass_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TrafficClass_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TrafficClass_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TrafficClass_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TrafficClass_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TrafficClass_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_TrafficClass_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  3l }	/* (0..3,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_TrafficClass_value2enum_1[] = {
+	{ 0,	14,	"conversational" },
+	{ 1,	9,	"streaming" },
+	{ 2,	11,	"interactive" },
+	{ 3,	10,	"background" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_TrafficClass_enum2value_1[] = {
+	3,	/* background(3) */
+	0,	/* conversational(0) */
+	2,	/* interactive(2) */
+	1	/* streaming(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_TrafficClass_specs_1 = {
+	asn_MAP_RANAP_TrafficClass_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_TrafficClass_enum2value_1,	/* N => "tag"; sorted by N */
+	4,	/* Number of elements in the maps */
+	5,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TrafficClass_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TrafficClass = {
+	"RANAP_TrafficClass",
+	"RANAP_TrafficClass",
+	RANAP_TrafficClass_free,
+	RANAP_TrafficClass_print,
+	RANAP_TrafficClass_constraint,
+	RANAP_TrafficClass_decode_ber,
+	RANAP_TrafficClass_encode_der,
+	RANAP_TrafficClass_decode_xer,
+	RANAP_TrafficClass_encode_xer,
+	RANAP_TrafficClass_decode_uper,
+	RANAP_TrafficClass_encode_uper,
+	RANAP_TrafficClass_decode_aper,
+	RANAP_TrafficClass_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TrafficClass_tags_1,
+	sizeof(asn_DEF_RANAP_TrafficClass_tags_1)
+		/sizeof(asn_DEF_RANAP_TrafficClass_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TrafficClass_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TrafficClass_tags_1)
+		/sizeof(asn_DEF_RANAP_TrafficClass_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TrafficClass_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_TrafficClass_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TrafficClass.h b/src/ranap/RANAP_TrafficClass.h
new file mode 100644
index 0000000..5d3eb28
--- /dev/null
+++ b/src/ranap/RANAP_TrafficClass.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TrafficClass_H_
+#define	_RANAP_TrafficClass_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_TrafficClass {
+	RANAP_TrafficClass_conversational	= 0,
+	RANAP_TrafficClass_streaming	= 1,
+	RANAP_TrafficClass_interactive	= 2,
+	RANAP_TrafficClass_background	= 3
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_TrafficClass;
+
+/* RANAP_TrafficClass */
+typedef long	 RANAP_TrafficClass_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TrafficClass;
+asn_struct_free_f RANAP_TrafficClass_free;
+asn_struct_print_f RANAP_TrafficClass_print;
+asn_constr_check_f RANAP_TrafficClass_constraint;
+ber_type_decoder_f RANAP_TrafficClass_decode_ber;
+der_type_encoder_f RANAP_TrafficClass_encode_der;
+xer_type_decoder_f RANAP_TrafficClass_decode_xer;
+xer_type_encoder_f RANAP_TrafficClass_encode_xer;
+per_type_decoder_f RANAP_TrafficClass_decode_uper;
+per_type_encoder_f RANAP_TrafficClass_encode_uper;
+per_type_decoder_f RANAP_TrafficClass_decode_aper;
+per_type_encoder_f RANAP_TrafficClass_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TrafficClass_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TrafficHandlingPriority.c b/src/ranap/RANAP_TrafficHandlingPriority.c
new file mode 100644
index 0000000..ebc833e
--- /dev/null
+++ b/src/ranap/RANAP_TrafficHandlingPriority.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TrafficHandlingPriority.h"
+
+int
+RANAP_TrafficHandlingPriority_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 15l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TrafficHandlingPriority_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_TrafficHandlingPriority_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TrafficHandlingPriority_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TrafficHandlingPriority_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TrafficHandlingPriority_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TrafficHandlingPriority_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TrafficHandlingPriority_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TrafficHandlingPriority_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TrafficHandlingPriority_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TrafficHandlingPriority_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TrafficHandlingPriority_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TrafficHandlingPriority_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TrafficHandlingPriority_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TrafficHandlingPriority_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TrafficHandlingPriority_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TrafficHandlingPriority_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TrafficHandlingPriority_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TrafficHandlingPriority_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TrafficHandlingPriority_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TrafficHandlingPriority_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TrafficHandlingPriority_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_TrafficHandlingPriority_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 4,  4,  0l,  15l }	/* (0..15) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TrafficHandlingPriority_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TrafficHandlingPriority = {
+	"RANAP_TrafficHandlingPriority",
+	"RANAP_TrafficHandlingPriority",
+	RANAP_TrafficHandlingPriority_free,
+	RANAP_TrafficHandlingPriority_print,
+	RANAP_TrafficHandlingPriority_constraint,
+	RANAP_TrafficHandlingPriority_decode_ber,
+	RANAP_TrafficHandlingPriority_encode_der,
+	RANAP_TrafficHandlingPriority_decode_xer,
+	RANAP_TrafficHandlingPriority_encode_xer,
+	RANAP_TrafficHandlingPriority_decode_uper,
+	RANAP_TrafficHandlingPriority_encode_uper,
+	RANAP_TrafficHandlingPriority_decode_aper,
+	RANAP_TrafficHandlingPriority_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TrafficHandlingPriority_tags_1,
+	sizeof(asn_DEF_RANAP_TrafficHandlingPriority_tags_1)
+		/sizeof(asn_DEF_RANAP_TrafficHandlingPriority_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TrafficHandlingPriority_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TrafficHandlingPriority_tags_1)
+		/sizeof(asn_DEF_RANAP_TrafficHandlingPriority_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TrafficHandlingPriority_constr_1,
+	0, 0,	/* Defined elsewhere */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_TrafficHandlingPriority.h b/src/ranap/RANAP_TrafficHandlingPriority.h
new file mode 100644
index 0000000..2067c21
--- /dev/null
+++ b/src/ranap/RANAP_TrafficHandlingPriority.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TrafficHandlingPriority_H_
+#define	_RANAP_TrafficHandlingPriority_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_TrafficHandlingPriority {
+	RANAP_TrafficHandlingPriority_spare	= 0,
+	RANAP_TrafficHandlingPriority_highest	= 1,
+	RANAP_TrafficHandlingPriority_lowest	= 14,
+	RANAP_TrafficHandlingPriority_no_priority_used	= 15
+} e_RANAP_TrafficHandlingPriority;
+
+/* RANAP_TrafficHandlingPriority */
+typedef long	 RANAP_TrafficHandlingPriority_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TrafficHandlingPriority;
+asn_struct_free_f RANAP_TrafficHandlingPriority_free;
+asn_struct_print_f RANAP_TrafficHandlingPriority_print;
+asn_constr_check_f RANAP_TrafficHandlingPriority_constraint;
+ber_type_decoder_f RANAP_TrafficHandlingPriority_decode_ber;
+der_type_encoder_f RANAP_TrafficHandlingPriority_encode_der;
+xer_type_decoder_f RANAP_TrafficHandlingPriority_decode_xer;
+xer_type_encoder_f RANAP_TrafficHandlingPriority_encode_xer;
+per_type_decoder_f RANAP_TrafficHandlingPriority_decode_uper;
+per_type_encoder_f RANAP_TrafficHandlingPriority_encode_uper;
+per_type_decoder_f RANAP_TrafficHandlingPriority_decode_aper;
+per_type_encoder_f RANAP_TrafficHandlingPriority_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TrafficHandlingPriority_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TransferDelay.c b/src/ranap/RANAP_TransferDelay.c
new file mode 100644
index 0000000..bb81d52
--- /dev/null
+++ b/src/ranap/RANAP_TransferDelay.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TransferDelay.h"
+
+int
+RANAP_TransferDelay_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 65535l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TransferDelay_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_TransferDelay_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TransferDelay_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TransferDelay_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TransferDelay_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TransferDelay_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TransferDelay_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TransferDelay_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TransferDelay_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TransferDelay_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TransferDelay_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TransferDelay_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TransferDelay_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TransferDelay_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TransferDelay_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TransferDelay_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TransferDelay_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TransferDelay_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TransferDelay_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TransferDelay_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TransferDelay_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_TransferDelay_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TransferDelay_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TransferDelay = {
+	"RANAP_TransferDelay",
+	"RANAP_TransferDelay",
+	RANAP_TransferDelay_free,
+	RANAP_TransferDelay_print,
+	RANAP_TransferDelay_constraint,
+	RANAP_TransferDelay_decode_ber,
+	RANAP_TransferDelay_encode_der,
+	RANAP_TransferDelay_decode_xer,
+	RANAP_TransferDelay_encode_xer,
+	RANAP_TransferDelay_decode_uper,
+	RANAP_TransferDelay_encode_uper,
+	RANAP_TransferDelay_decode_aper,
+	RANAP_TransferDelay_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TransferDelay_tags_1,
+	sizeof(asn_DEF_RANAP_TransferDelay_tags_1)
+		/sizeof(asn_DEF_RANAP_TransferDelay_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TransferDelay_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TransferDelay_tags_1)
+		/sizeof(asn_DEF_RANAP_TransferDelay_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TransferDelay_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_TransferDelay.h b/src/ranap/RANAP_TransferDelay.h
new file mode 100644
index 0000000..7339967
--- /dev/null
+++ b/src/ranap/RANAP_TransferDelay.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TransferDelay_H_
+#define	_RANAP_TransferDelay_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TransferDelay */
+typedef long	 RANAP_TransferDelay_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TransferDelay;
+asn_struct_free_f RANAP_TransferDelay_free;
+asn_struct_print_f RANAP_TransferDelay_print;
+asn_constr_check_f RANAP_TransferDelay_constraint;
+ber_type_decoder_f RANAP_TransferDelay_decode_ber;
+der_type_encoder_f RANAP_TransferDelay_encode_der;
+xer_type_decoder_f RANAP_TransferDelay_decode_xer;
+xer_type_encoder_f RANAP_TransferDelay_encode_xer;
+per_type_decoder_f RANAP_TransferDelay_decode_uper;
+per_type_encoder_f RANAP_TransferDelay_encode_uper;
+per_type_decoder_f RANAP_TransferDelay_decode_aper;
+per_type_encoder_f RANAP_TransferDelay_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TransferDelay_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TransportLayerAddress.c b/src/ranap/RANAP_TransportLayerAddress.c
new file mode 100644
index 0000000..4451afa
--- /dev/null
+++ b/src/ranap/RANAP_TransportLayerAddress.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TransportLayerAddress.h"
+
+int
+RANAP_TransportLayerAddress_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size >= 1l && size <= 160l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TransportLayerAddress_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_BIT_STRING.free_struct;
+	td->print_struct   = asn_DEF_BIT_STRING.print_struct;
+	td->check_constraints = asn_DEF_BIT_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_BIT_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_BIT_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_BIT_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_BIT_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_BIT_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_BIT_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_BIT_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_BIT_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_BIT_STRING.per_constraints;
+	td->elements       = asn_DEF_BIT_STRING.elements;
+	td->elements_count = asn_DEF_BIT_STRING.elements_count;
+	td->specifics      = asn_DEF_BIT_STRING.specifics;
+}
+
+void
+RANAP_TransportLayerAddress_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TransportLayerAddress_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TransportLayerAddress_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TransportLayerAddress_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TransportLayerAddress_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TransportLayerAddress_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TransportLayerAddress_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TransportLayerAddress_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TransportLayerAddress_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TransportLayerAddress_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TransportLayerAddress_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TransportLayerAddress_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TransportLayerAddress_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TransportLayerAddress_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TransportLayerAddress_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TransportLayerAddress_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TransportLayerAddress_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TransportLayerAddress_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TransportLayerAddress_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TransportLayerAddress_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_TransportLayerAddress_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1l,  160l }	/* (SIZE(1..160,...)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TransportLayerAddress_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TransportLayerAddress = {
+	"RANAP_TransportLayerAddress",
+	"RANAP_TransportLayerAddress",
+	RANAP_TransportLayerAddress_free,
+	RANAP_TransportLayerAddress_print,
+	RANAP_TransportLayerAddress_constraint,
+	RANAP_TransportLayerAddress_decode_ber,
+	RANAP_TransportLayerAddress_encode_der,
+	RANAP_TransportLayerAddress_decode_xer,
+	RANAP_TransportLayerAddress_encode_xer,
+	RANAP_TransportLayerAddress_decode_uper,
+	RANAP_TransportLayerAddress_encode_uper,
+	RANAP_TransportLayerAddress_decode_aper,
+	RANAP_TransportLayerAddress_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TransportLayerAddress_tags_1,
+	sizeof(asn_DEF_RANAP_TransportLayerAddress_tags_1)
+		/sizeof(asn_DEF_RANAP_TransportLayerAddress_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TransportLayerAddress_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TransportLayerAddress_tags_1)
+		/sizeof(asn_DEF_RANAP_TransportLayerAddress_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TransportLayerAddress_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_TransportLayerAddress.h b/src/ranap/RANAP_TransportLayerAddress.h
new file mode 100644
index 0000000..fb99bac
--- /dev/null
+++ b/src/ranap/RANAP_TransportLayerAddress.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TransportLayerAddress_H_
+#define	_RANAP_TransportLayerAddress_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TransportLayerAddress */
+typedef BIT_STRING_t	 RANAP_TransportLayerAddress_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TransportLayerAddress;
+asn_struct_free_f RANAP_TransportLayerAddress_free;
+asn_struct_print_f RANAP_TransportLayerAddress_print;
+asn_constr_check_f RANAP_TransportLayerAddress_constraint;
+ber_type_decoder_f RANAP_TransportLayerAddress_decode_ber;
+der_type_encoder_f RANAP_TransportLayerAddress_encode_der;
+xer_type_decoder_f RANAP_TransportLayerAddress_decode_xer;
+xer_type_encoder_f RANAP_TransportLayerAddress_encode_xer;
+per_type_decoder_f RANAP_TransportLayerAddress_decode_uper;
+per_type_encoder_f RANAP_TransportLayerAddress_encode_uper;
+per_type_decoder_f RANAP_TransportLayerAddress_decode_aper;
+per_type_encoder_f RANAP_TransportLayerAddress_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TransportLayerAddress_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TriggerID.c b/src/ranap/RANAP_TriggerID.c
new file mode 100644
index 0000000..be02669
--- /dev/null
+++ b/src/ranap/RANAP_TriggerID.c
@@ -0,0 +1,166 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TriggerID.h"
+
+int
+RANAP_TriggerID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 3l && size <= 22l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TriggerID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_TriggerID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TriggerID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TriggerID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TriggerID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TriggerID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TriggerID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TriggerID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TriggerID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TriggerID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TriggerID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TriggerID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TriggerID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TriggerID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TriggerID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TriggerID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TriggerID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TriggerID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TriggerID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TriggerID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TriggerID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_TriggerID_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 5,  5,  3l,  22l }	/* (SIZE(3..22)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TriggerID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TriggerID = {
+	"RANAP_TriggerID",
+	"RANAP_TriggerID",
+	RANAP_TriggerID_free,
+	RANAP_TriggerID_print,
+	RANAP_TriggerID_constraint,
+	RANAP_TriggerID_decode_ber,
+	RANAP_TriggerID_encode_der,
+	RANAP_TriggerID_decode_xer,
+	RANAP_TriggerID_encode_xer,
+	RANAP_TriggerID_decode_uper,
+	RANAP_TriggerID_encode_uper,
+	RANAP_TriggerID_decode_aper,
+	RANAP_TriggerID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TriggerID_tags_1,
+	sizeof(asn_DEF_RANAP_TriggerID_tags_1)
+		/sizeof(asn_DEF_RANAP_TriggerID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TriggerID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TriggerID_tags_1)
+		/sizeof(asn_DEF_RANAP_TriggerID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TriggerID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_TriggerID.h b/src/ranap/RANAP_TriggerID.h
new file mode 100644
index 0000000..eba5820
--- /dev/null
+++ b/src/ranap/RANAP_TriggerID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TriggerID_H_
+#define	_RANAP_TriggerID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TriggerID */
+typedef OCTET_STRING_t	 RANAP_TriggerID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TriggerID;
+asn_struct_free_f RANAP_TriggerID_free;
+asn_struct_print_f RANAP_TriggerID_print;
+asn_constr_check_f RANAP_TriggerID_constraint;
+ber_type_decoder_f RANAP_TriggerID_decode_ber;
+der_type_encoder_f RANAP_TriggerID_encode_der;
+xer_type_decoder_f RANAP_TriggerID_decode_xer;
+xer_type_encoder_f RANAP_TriggerID_encode_xer;
+per_type_decoder_f RANAP_TriggerID_decode_uper;
+per_type_encoder_f RANAP_TriggerID_encode_uper;
+per_type_decoder_f RANAP_TriggerID_decode_aper;
+per_type_encoder_f RANAP_TriggerID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TriggerID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TriggeringMessage.c b/src/ranap/RANAP_TriggeringMessage.c
new file mode 100644
index 0000000..7b1cf75
--- /dev/null
+++ b/src/ranap/RANAP_TriggeringMessage.c
@@ -0,0 +1,169 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-CommonDataTypes"
+ * 	found in "../../asn1/ranap/RANAP-CommonDataTypes.asn"
+ */
+
+#include "RANAP_TriggeringMessage.h"
+
+int
+RANAP_TriggeringMessage_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TriggeringMessage_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_TriggeringMessage_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TriggeringMessage_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TriggeringMessage_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TriggeringMessage_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TriggeringMessage_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TriggeringMessage_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TriggeringMessage_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TriggeringMessage_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TriggeringMessage_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TriggeringMessage_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TriggeringMessage_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TriggeringMessage_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TriggeringMessage_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TriggeringMessage_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TriggeringMessage_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TriggeringMessage_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TriggeringMessage_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TriggeringMessage_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TriggeringMessage_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TriggeringMessage_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_TriggeringMessage_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0l,  3l }	/* (0..3) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_TriggeringMessage_value2enum_1[] = {
+	{ 0,	18,	"initiating-message" },
+	{ 1,	18,	"successful-outcome" },
+	{ 2,	21,	"unsuccessfull-outcome" },
+	{ 3,	7,	"outcome" }
+};
+static const unsigned int asn_MAP_RANAP_TriggeringMessage_enum2value_1[] = {
+	0,	/* initiating-message(0) */
+	3,	/* outcome(3) */
+	1,	/* successful-outcome(1) */
+	2	/* unsuccessfull-outcome(2) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_TriggeringMessage_specs_1 = {
+	asn_MAP_RANAP_TriggeringMessage_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_TriggeringMessage_enum2value_1,	/* N => "tag"; sorted by N */
+	4,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TriggeringMessage_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TriggeringMessage = {
+	"RANAP_TriggeringMessage",
+	"RANAP_TriggeringMessage",
+	RANAP_TriggeringMessage_free,
+	RANAP_TriggeringMessage_print,
+	RANAP_TriggeringMessage_constraint,
+	RANAP_TriggeringMessage_decode_ber,
+	RANAP_TriggeringMessage_encode_der,
+	RANAP_TriggeringMessage_decode_xer,
+	RANAP_TriggeringMessage_encode_xer,
+	RANAP_TriggeringMessage_decode_uper,
+	RANAP_TriggeringMessage_encode_uper,
+	RANAP_TriggeringMessage_decode_aper,
+	RANAP_TriggeringMessage_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TriggeringMessage_tags_1,
+	sizeof(asn_DEF_RANAP_TriggeringMessage_tags_1)
+		/sizeof(asn_DEF_RANAP_TriggeringMessage_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TriggeringMessage_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TriggeringMessage_tags_1)
+		/sizeof(asn_DEF_RANAP_TriggeringMessage_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TriggeringMessage_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_TriggeringMessage_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TriggeringMessage.h b/src/ranap/RANAP_TriggeringMessage.h
new file mode 100644
index 0000000..f43f734
--- /dev/null
+++ b/src/ranap/RANAP_TriggeringMessage.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-CommonDataTypes"
+ * 	found in "../../asn1/ranap/RANAP-CommonDataTypes.asn"
+ */
+
+#ifndef	_RANAP_TriggeringMessage_H_
+#define	_RANAP_TriggeringMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_TriggeringMessage {
+	RANAP_TriggeringMessage_initiating_message	= 0,
+	RANAP_TriggeringMessage_successful_outcome	= 1,
+	RANAP_TriggeringMessage_unsuccessfull_outcome	= 2,
+	RANAP_TriggeringMessage_outcome	= 3
+} e_RANAP_TriggeringMessage;
+
+/* RANAP_TriggeringMessage */
+typedef long	 RANAP_TriggeringMessage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TriggeringMessage;
+asn_struct_free_f RANAP_TriggeringMessage_free;
+asn_struct_print_f RANAP_TriggeringMessage_print;
+asn_constr_check_f RANAP_TriggeringMessage_constraint;
+ber_type_decoder_f RANAP_TriggeringMessage_decode_ber;
+der_type_encoder_f RANAP_TriggeringMessage_encode_der;
+xer_type_decoder_f RANAP_TriggeringMessage_decode_xer;
+xer_type_encoder_f RANAP_TriggeringMessage_encode_xer;
+per_type_decoder_f RANAP_TriggeringMessage_decode_uper;
+per_type_encoder_f RANAP_TriggeringMessage_encode_uper;
+per_type_decoder_f RANAP_TriggeringMessage_decode_aper;
+per_type_encoder_f RANAP_TriggeringMessage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TriggeringMessage_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TunnelInformation.c b/src/ranap/RANAP_TunnelInformation.c
new file mode 100644
index 0000000..e35c03c
--- /dev/null
+++ b/src/ranap/RANAP_TunnelInformation.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TunnelInformation.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_TunnelInformation_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TunnelInformation, transportLayerAddress),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TransportLayerAddress,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"transportLayerAddress"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_TunnelInformation, uDP_Port_Number),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Port_Number,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"uDP-Port-Number"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_TunnelInformation, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_TunnelInformation_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_TunnelInformation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_TunnelInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transportLayerAddress */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uDP-Port-Number */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_TunnelInformation_specs_1 = {
+	sizeof(struct RANAP_TunnelInformation),
+	offsetof(struct RANAP_TunnelInformation, _asn_ctx),
+	asn_MAP_RANAP_TunnelInformation_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_TunnelInformation_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TunnelInformation = {
+	"RANAP_TunnelInformation",
+	"RANAP_TunnelInformation",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TunnelInformation_tags_1,
+	sizeof(asn_DEF_RANAP_TunnelInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_TunnelInformation_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TunnelInformation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TunnelInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_TunnelInformation_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_TunnelInformation_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_TunnelInformation_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TunnelInformation.h b/src/ranap/RANAP_TunnelInformation.h
new file mode 100644
index 0000000..c66e3a3
--- /dev/null
+++ b/src/ranap/RANAP_TunnelInformation.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TunnelInformation_H_
+#define	_RANAP_TunnelInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_TransportLayerAddress.h"
+#include "RANAP_Port-Number.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_TunnelInformation */
+typedef struct RANAP_TunnelInformation {
+	RANAP_TransportLayerAddress_t	 transportLayerAddress;
+	RANAP_Port_Number_t	*uDP_Port_Number	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_TunnelInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TunnelInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TunnelInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_TypeOfError.c b/src/ranap/RANAP_TypeOfError.c
new file mode 100644
index 0000000..607d3fc
--- /dev/null
+++ b/src/ranap/RANAP_TypeOfError.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_TypeOfError.h"
+
+int
+RANAP_TypeOfError_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_TypeOfError_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_TypeOfError_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_TypeOfError_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_TypeOfError_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TypeOfError_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TypeOfError_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_TypeOfError_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_TypeOfError_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TypeOfError_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TypeOfError_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_TypeOfError_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_TypeOfError_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_TypeOfError_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_TypeOfError_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TypeOfError_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_TypeOfError_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TypeOfError_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_TypeOfError_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_TypeOfError_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_TypeOfError_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_TypeOfError_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_TypeOfError_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_TypeOfError_value2enum_1[] = {
+	{ 0,	14,	"not-understood" },
+	{ 1,	7,	"missing" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_TypeOfError_enum2value_1[] = {
+	1,	/* missing(1) */
+	0	/* not-understood(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_TypeOfError_specs_1 = {
+	asn_MAP_RANAP_TypeOfError_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_TypeOfError_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_TypeOfError_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TypeOfError = {
+	"RANAP_TypeOfError",
+	"RANAP_TypeOfError",
+	RANAP_TypeOfError_free,
+	RANAP_TypeOfError_print,
+	RANAP_TypeOfError_constraint,
+	RANAP_TypeOfError_decode_ber,
+	RANAP_TypeOfError_encode_der,
+	RANAP_TypeOfError_decode_xer,
+	RANAP_TypeOfError_encode_xer,
+	RANAP_TypeOfError_decode_uper,
+	RANAP_TypeOfError_encode_uper,
+	RANAP_TypeOfError_decode_aper,
+	RANAP_TypeOfError_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_TypeOfError_tags_1,
+	sizeof(asn_DEF_RANAP_TypeOfError_tags_1)
+		/sizeof(asn_DEF_RANAP_TypeOfError_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TypeOfError_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TypeOfError_tags_1)
+		/sizeof(asn_DEF_RANAP_TypeOfError_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_TypeOfError_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_TypeOfError_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_TypeOfError.h b/src/ranap/RANAP_TypeOfError.h
new file mode 100644
index 0000000..12b0528
--- /dev/null
+++ b/src/ranap/RANAP_TypeOfError.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_TypeOfError_H_
+#define	_RANAP_TypeOfError_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_TypeOfError {
+	RANAP_TypeOfError_not_understood	= 0,
+	RANAP_TypeOfError_missing	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_TypeOfError;
+
+/* RANAP_TypeOfError */
+typedef long	 RANAP_TypeOfError_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_TypeOfError;
+asn_struct_free_f RANAP_TypeOfError_free;
+asn_struct_print_f RANAP_TypeOfError_print;
+asn_constr_check_f RANAP_TypeOfError_constraint;
+ber_type_decoder_f RANAP_TypeOfError_decode_ber;
+der_type_encoder_f RANAP_TypeOfError_encode_der;
+xer_type_decoder_f RANAP_TypeOfError_decode_xer;
+xer_type_encoder_f RANAP_TypeOfError_encode_xer;
+per_type_decoder_f RANAP_TypeOfError_decode_uper;
+per_type_encoder_f RANAP_TypeOfError_encode_uper;
+per_type_decoder_f RANAP_TypeOfError_decode_aper;
+per_type_encoder_f RANAP_TypeOfError_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_TypeOfError_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UE-AggregateMaximumBitRate.c b/src/ranap/RANAP_UE-AggregateMaximumBitRate.c
new file mode 100644
index 0000000..8c41b8f
--- /dev/null
+++ b/src/ranap/RANAP_UE-AggregateMaximumBitRate.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_UE-AggregateMaximumBitRate.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_UE_AggregateMaximumBitRate_1[] = {
+	{ ATF_POINTER, 2, offsetof(struct RANAP_UE_AggregateMaximumBitRate, uE_AggregateMaximumBitRateDownlink),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_UE_AggregateMaximumBitRateDownlink,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"uE-AggregateMaximumBitRateDownlink"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_UE_AggregateMaximumBitRate, uE_AggregateMaximumBitRateUplink),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_UE_AggregateMaximumBitRateUplink,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"uE-AggregateMaximumBitRateUplink"
+		},
+};
+static const int asn_MAP_RANAP_UE_AggregateMaximumBitRate_oms_1[] = { 0, 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_UE_AggregateMaximumBitRate_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_UE_AggregateMaximumBitRate_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uE-AggregateMaximumBitRateDownlink */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* uE-AggregateMaximumBitRateUplink */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_UE_AggregateMaximumBitRate_specs_1 = {
+	sizeof(struct RANAP_UE_AggregateMaximumBitRate),
+	offsetof(struct RANAP_UE_AggregateMaximumBitRate, _asn_ctx),
+	asn_MAP_RANAP_UE_AggregateMaximumBitRate_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_UE_AggregateMaximumBitRate_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UE_AggregateMaximumBitRate = {
+	"RANAP_UE-AggregateMaximumBitRate",
+	"RANAP_UE-AggregateMaximumBitRate",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UE_AggregateMaximumBitRate_tags_1,
+	sizeof(asn_DEF_RANAP_UE_AggregateMaximumBitRate_tags_1)
+		/sizeof(asn_DEF_RANAP_UE_AggregateMaximumBitRate_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UE_AggregateMaximumBitRate_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UE_AggregateMaximumBitRate_tags_1)
+		/sizeof(asn_DEF_RANAP_UE_AggregateMaximumBitRate_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_UE_AggregateMaximumBitRate_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_UE_AggregateMaximumBitRate_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_UE-AggregateMaximumBitRate.h b/src/ranap/RANAP_UE-AggregateMaximumBitRate.h
new file mode 100644
index 0000000..79fc5ee
--- /dev/null
+++ b/src/ranap/RANAP_UE-AggregateMaximumBitRate.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_UE_AggregateMaximumBitRate_H_
+#define	_RANAP_UE_AggregateMaximumBitRate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_UE-AggregateMaximumBitRateDownlink.h"
+#include "RANAP_UE-AggregateMaximumBitRateUplink.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UE-AggregateMaximumBitRate */
+typedef struct RANAP_UE_AggregateMaximumBitRate {
+	RANAP_UE_AggregateMaximumBitRateDownlink_t	*uE_AggregateMaximumBitRateDownlink	/* OPTIONAL */;
+	RANAP_UE_AggregateMaximumBitRateUplink_t	*uE_AggregateMaximumBitRateUplink	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_UE_AggregateMaximumBitRate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UE_AggregateMaximumBitRate;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UE_AggregateMaximumBitRate_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UE-AggregateMaximumBitRateDownlink.c b/src/ranap/RANAP_UE-AggregateMaximumBitRateDownlink.c
new file mode 100644
index 0000000..1936ee1
--- /dev/null
+++ b/src/ranap/RANAP_UE-AggregateMaximumBitRateDownlink.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_UE-AggregateMaximumBitRateDownlink.h"
+
+int
+RANAP_UE_AggregateMaximumBitRateDownlink_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 1000000000l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_UE_AggregateMaximumBitRateDownlink_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_UE_AggregateMaximumBitRateDownlink_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_UE_AggregateMaximumBitRateDownlink_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_UE_AggregateMaximumBitRateDownlink_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UE_AggregateMaximumBitRateDownlink_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UE_AggregateMaximumBitRateDownlink_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_UE_AggregateMaximumBitRateDownlink_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_UE_AggregateMaximumBitRateDownlink_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UE_AggregateMaximumBitRateDownlink_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UE_AggregateMaximumBitRateDownlink_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_UE_AggregateMaximumBitRateDownlink_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_UE_AggregateMaximumBitRateDownlink_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UE_AggregateMaximumBitRateDownlink_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UE_AggregateMaximumBitRateDownlink_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UE_AggregateMaximumBitRateDownlink_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_UE_AggregateMaximumBitRateDownlink_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UE_AggregateMaximumBitRateDownlink_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_UE_AggregateMaximumBitRateDownlink_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UE_AggregateMaximumBitRateDownlink_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_UE_AggregateMaximumBitRateDownlink_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UE_AggregateMaximumBitRateDownlink_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_UE_AggregateMaximumBitRateDownlink_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 30, -1,  1l,  1000000000l }	/* (1..1000000000) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_UE_AggregateMaximumBitRateDownlink_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UE_AggregateMaximumBitRateDownlink = {
+	"RANAP_UE-AggregateMaximumBitRateDownlink",
+	"RANAP_UE-AggregateMaximumBitRateDownlink",
+	RANAP_UE_AggregateMaximumBitRateDownlink_free,
+	RANAP_UE_AggregateMaximumBitRateDownlink_print,
+	RANAP_UE_AggregateMaximumBitRateDownlink_constraint,
+	RANAP_UE_AggregateMaximumBitRateDownlink_decode_ber,
+	RANAP_UE_AggregateMaximumBitRateDownlink_encode_der,
+	RANAP_UE_AggregateMaximumBitRateDownlink_decode_xer,
+	RANAP_UE_AggregateMaximumBitRateDownlink_encode_xer,
+	RANAP_UE_AggregateMaximumBitRateDownlink_decode_uper,
+	RANAP_UE_AggregateMaximumBitRateDownlink_encode_uper,
+	RANAP_UE_AggregateMaximumBitRateDownlink_decode_aper,
+	RANAP_UE_AggregateMaximumBitRateDownlink_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UE_AggregateMaximumBitRateDownlink_tags_1,
+	sizeof(asn_DEF_RANAP_UE_AggregateMaximumBitRateDownlink_tags_1)
+		/sizeof(asn_DEF_RANAP_UE_AggregateMaximumBitRateDownlink_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UE_AggregateMaximumBitRateDownlink_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UE_AggregateMaximumBitRateDownlink_tags_1)
+		/sizeof(asn_DEF_RANAP_UE_AggregateMaximumBitRateDownlink_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_UE_AggregateMaximumBitRateDownlink_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_UE-AggregateMaximumBitRateDownlink.h b/src/ranap/RANAP_UE-AggregateMaximumBitRateDownlink.h
new file mode 100644
index 0000000..0e6c196
--- /dev/null
+++ b/src/ranap/RANAP_UE-AggregateMaximumBitRateDownlink.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_UE_AggregateMaximumBitRateDownlink_H_
+#define	_RANAP_UE_AggregateMaximumBitRateDownlink_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UE-AggregateMaximumBitRateDownlink */
+typedef long	 RANAP_UE_AggregateMaximumBitRateDownlink_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UE_AggregateMaximumBitRateDownlink;
+asn_struct_free_f RANAP_UE_AggregateMaximumBitRateDownlink_free;
+asn_struct_print_f RANAP_UE_AggregateMaximumBitRateDownlink_print;
+asn_constr_check_f RANAP_UE_AggregateMaximumBitRateDownlink_constraint;
+ber_type_decoder_f RANAP_UE_AggregateMaximumBitRateDownlink_decode_ber;
+der_type_encoder_f RANAP_UE_AggregateMaximumBitRateDownlink_encode_der;
+xer_type_decoder_f RANAP_UE_AggregateMaximumBitRateDownlink_decode_xer;
+xer_type_encoder_f RANAP_UE_AggregateMaximumBitRateDownlink_encode_xer;
+per_type_decoder_f RANAP_UE_AggregateMaximumBitRateDownlink_decode_uper;
+per_type_encoder_f RANAP_UE_AggregateMaximumBitRateDownlink_encode_uper;
+per_type_decoder_f RANAP_UE_AggregateMaximumBitRateDownlink_decode_aper;
+per_type_encoder_f RANAP_UE_AggregateMaximumBitRateDownlink_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UE_AggregateMaximumBitRateDownlink_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UE-AggregateMaximumBitRateUplink.c b/src/ranap/RANAP_UE-AggregateMaximumBitRateUplink.c
new file mode 100644
index 0000000..9d0074e
--- /dev/null
+++ b/src/ranap/RANAP_UE-AggregateMaximumBitRateUplink.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_UE-AggregateMaximumBitRateUplink.h"
+
+int
+RANAP_UE_AggregateMaximumBitRateUplink_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1l && value <= 1000000000l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_UE_AggregateMaximumBitRateUplink_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_UE_AggregateMaximumBitRateUplink_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_UE_AggregateMaximumBitRateUplink_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_UE_AggregateMaximumBitRateUplink_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UE_AggregateMaximumBitRateUplink_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UE_AggregateMaximumBitRateUplink_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_UE_AggregateMaximumBitRateUplink_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_UE_AggregateMaximumBitRateUplink_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UE_AggregateMaximumBitRateUplink_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UE_AggregateMaximumBitRateUplink_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_UE_AggregateMaximumBitRateUplink_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_UE_AggregateMaximumBitRateUplink_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UE_AggregateMaximumBitRateUplink_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UE_AggregateMaximumBitRateUplink_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UE_AggregateMaximumBitRateUplink_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_UE_AggregateMaximumBitRateUplink_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UE_AggregateMaximumBitRateUplink_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_UE_AggregateMaximumBitRateUplink_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UE_AggregateMaximumBitRateUplink_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_UE_AggregateMaximumBitRateUplink_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UE_AggregateMaximumBitRateUplink_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_UE_AggregateMaximumBitRateUplink_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 30, -1,  1l,  1000000000l }	/* (1..1000000000) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_UE_AggregateMaximumBitRateUplink_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UE_AggregateMaximumBitRateUplink = {
+	"RANAP_UE-AggregateMaximumBitRateUplink",
+	"RANAP_UE-AggregateMaximumBitRateUplink",
+	RANAP_UE_AggregateMaximumBitRateUplink_free,
+	RANAP_UE_AggregateMaximumBitRateUplink_print,
+	RANAP_UE_AggregateMaximumBitRateUplink_constraint,
+	RANAP_UE_AggregateMaximumBitRateUplink_decode_ber,
+	RANAP_UE_AggregateMaximumBitRateUplink_encode_der,
+	RANAP_UE_AggregateMaximumBitRateUplink_decode_xer,
+	RANAP_UE_AggregateMaximumBitRateUplink_encode_xer,
+	RANAP_UE_AggregateMaximumBitRateUplink_decode_uper,
+	RANAP_UE_AggregateMaximumBitRateUplink_encode_uper,
+	RANAP_UE_AggregateMaximumBitRateUplink_decode_aper,
+	RANAP_UE_AggregateMaximumBitRateUplink_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UE_AggregateMaximumBitRateUplink_tags_1,
+	sizeof(asn_DEF_RANAP_UE_AggregateMaximumBitRateUplink_tags_1)
+		/sizeof(asn_DEF_RANAP_UE_AggregateMaximumBitRateUplink_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UE_AggregateMaximumBitRateUplink_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UE_AggregateMaximumBitRateUplink_tags_1)
+		/sizeof(asn_DEF_RANAP_UE_AggregateMaximumBitRateUplink_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_UE_AggregateMaximumBitRateUplink_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_UE-AggregateMaximumBitRateUplink.h b/src/ranap/RANAP_UE-AggregateMaximumBitRateUplink.h
new file mode 100644
index 0000000..fca65bf
--- /dev/null
+++ b/src/ranap/RANAP_UE-AggregateMaximumBitRateUplink.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_UE_AggregateMaximumBitRateUplink_H_
+#define	_RANAP_UE_AggregateMaximumBitRateUplink_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UE-AggregateMaximumBitRateUplink */
+typedef long	 RANAP_UE_AggregateMaximumBitRateUplink_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UE_AggregateMaximumBitRateUplink;
+asn_struct_free_f RANAP_UE_AggregateMaximumBitRateUplink_free;
+asn_struct_print_f RANAP_UE_AggregateMaximumBitRateUplink_print;
+asn_constr_check_f RANAP_UE_AggregateMaximumBitRateUplink_constraint;
+ber_type_decoder_f RANAP_UE_AggregateMaximumBitRateUplink_decode_ber;
+der_type_encoder_f RANAP_UE_AggregateMaximumBitRateUplink_encode_der;
+xer_type_decoder_f RANAP_UE_AggregateMaximumBitRateUplink_decode_xer;
+xer_type_encoder_f RANAP_UE_AggregateMaximumBitRateUplink_encode_xer;
+per_type_decoder_f RANAP_UE_AggregateMaximumBitRateUplink_decode_uper;
+per_type_encoder_f RANAP_UE_AggregateMaximumBitRateUplink_encode_uper;
+per_type_decoder_f RANAP_UE_AggregateMaximumBitRateUplink_decode_aper;
+per_type_encoder_f RANAP_UE_AggregateMaximumBitRateUplink_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UE_AggregateMaximumBitRateUplink_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UE-History-Information.c b/src/ranap/RANAP_UE-History-Information.c
new file mode 100644
index 0000000..11a02bf
--- /dev/null
+++ b/src/ranap/RANAP_UE-History-Information.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_UE-History-Information.h"
+
+int
+RANAP_UE_History_Information_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_UE_History_Information_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_UE_History_Information_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_UE_History_Information_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_UE_History_Information_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UE_History_Information_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UE_History_Information_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_UE_History_Information_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_UE_History_Information_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UE_History_Information_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UE_History_Information_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_UE_History_Information_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_UE_History_Information_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UE_History_Information_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UE_History_Information_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UE_History_Information_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_UE_History_Information_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UE_History_Information_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_UE_History_Information_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UE_History_Information_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_UE_History_Information_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UE_History_Information_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_UE_History_Information_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UE_History_Information = {
+	"RANAP_UE-History-Information",
+	"RANAP_UE-History-Information",
+	RANAP_UE_History_Information_free,
+	RANAP_UE_History_Information_print,
+	RANAP_UE_History_Information_constraint,
+	RANAP_UE_History_Information_decode_ber,
+	RANAP_UE_History_Information_encode_der,
+	RANAP_UE_History_Information_decode_xer,
+	RANAP_UE_History_Information_encode_xer,
+	RANAP_UE_History_Information_decode_uper,
+	RANAP_UE_History_Information_encode_uper,
+	RANAP_UE_History_Information_decode_aper,
+	RANAP_UE_History_Information_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UE_History_Information_tags_1,
+	sizeof(asn_DEF_RANAP_UE_History_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_UE_History_Information_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UE_History_Information_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UE_History_Information_tags_1)
+		/sizeof(asn_DEF_RANAP_UE_History_Information_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_UE-History-Information.h b/src/ranap/RANAP_UE-History-Information.h
new file mode 100644
index 0000000..92df8b9
--- /dev/null
+++ b/src/ranap/RANAP_UE-History-Information.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_UE_History_Information_H_
+#define	_RANAP_UE_History_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UE-History-Information */
+typedef OCTET_STRING_t	 RANAP_UE_History_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UE_History_Information;
+asn_struct_free_f RANAP_UE_History_Information_free;
+asn_struct_print_f RANAP_UE_History_Information_print;
+asn_constr_check_f RANAP_UE_History_Information_constraint;
+ber_type_decoder_f RANAP_UE_History_Information_decode_ber;
+der_type_encoder_f RANAP_UE_History_Information_encode_der;
+xer_type_decoder_f RANAP_UE_History_Information_decode_xer;
+xer_type_encoder_f RANAP_UE_History_Information_encode_xer;
+per_type_decoder_f RANAP_UE_History_Information_decode_uper;
+per_type_encoder_f RANAP_UE_History_Information_encode_uper;
+per_type_decoder_f RANAP_UE_History_Information_decode_aper;
+per_type_encoder_f RANAP_UE_History_Information_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UE_History_Information_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UE-ID.c b/src/ranap/RANAP_UE-ID.c
new file mode 100644
index 0000000..7523f2d
--- /dev/null
+++ b/src/ranap/RANAP_UE-ID.c
@@ -0,0 +1,82 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_UE-ID.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_UE_ID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_UE_ID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UE_ID, choice.imsi),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IMSI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"imsi"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UE_ID, choice.imei),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IMEI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"imei"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UE_ID, choice.imeisv),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IMEISV,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"imeisv"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_UE_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* imsi */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* imei */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* imeisv */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_UE_ID_specs_1 = {
+	sizeof(struct RANAP_UE_ID),
+	offsetof(struct RANAP_UE_ID, _asn_ctx),
+	offsetof(struct RANAP_UE_ID, present),
+	sizeof(((struct RANAP_UE_ID *)0)->present),
+	asn_MAP_RANAP_UE_ID_tag2el_1,
+	3,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UE_ID = {
+	"RANAP_UE-ID",
+	"RANAP_UE-ID",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_UE_ID_constr_1,
+	asn_MBR_RANAP_UE_ID_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_UE_ID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_UE-ID.h b/src/ranap/RANAP_UE-ID.h
new file mode 100644
index 0000000..9d94030
--- /dev/null
+++ b/src/ranap/RANAP_UE-ID.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_UE_ID_H_
+#define	_RANAP_UE_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IMSI.h"
+#include "RANAP_IMEI.h"
+#include "RANAP_IMEISV.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_UE_ID_PR {
+	RANAP_UE_ID_PR_NOTHING,	/* No components present */
+	RANAP_UE_ID_PR_imsi,
+	RANAP_UE_ID_PR_imei,
+	/* Extensions may appear below */
+	RANAP_UE_ID_PR_imeisv
+} RANAP_UE_ID_PR;
+
+/* RANAP_UE-ID */
+typedef struct RANAP_UE_ID {
+	RANAP_UE_ID_PR present;
+	union RANAP_UE_ID_u {
+		RANAP_IMSI_t	 imsi;
+		RANAP_IMEI_t	 imei;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+		RANAP_IMEISV_t	 imeisv;
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_UE_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UE_ID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UE_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UESBI-Iu.c b/src/ranap/RANAP_UESBI-Iu.c
new file mode 100644
index 0000000..25cac18
--- /dev/null
+++ b/src/ranap/RANAP_UESBI-Iu.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_UESBI-Iu.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_UESBI_Iu_1[] = {
+	{ ATF_POINTER, 3, offsetof(struct RANAP_UESBI_Iu, uESBI_IuA),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_UESBI_IuA,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"uESBI-IuA"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_UESBI_Iu, uESBI_IuB),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_UESBI_IuB,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"uESBI-IuB"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_UESBI_Iu, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_UESBI_Iu_oms_1[] = { 0, 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_UESBI_Iu_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_UESBI_Iu_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uESBI-IuA */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uESBI-IuB */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_UESBI_Iu_specs_1 = {
+	sizeof(struct RANAP_UESBI_Iu),
+	offsetof(struct RANAP_UESBI_Iu, _asn_ctx),
+	asn_MAP_RANAP_UESBI_Iu_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_UESBI_Iu_oms_1,	/* Optional members */
+	3, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UESBI_Iu = {
+	"RANAP_UESBI-Iu",
+	"RANAP_UESBI-Iu",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UESBI_Iu_tags_1,
+	sizeof(asn_DEF_RANAP_UESBI_Iu_tags_1)
+		/sizeof(asn_DEF_RANAP_UESBI_Iu_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UESBI_Iu_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UESBI_Iu_tags_1)
+		/sizeof(asn_DEF_RANAP_UESBI_Iu_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_UESBI_Iu_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_UESBI_Iu_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_UESBI-Iu.h b/src/ranap/RANAP_UESBI-Iu.h
new file mode 100644
index 0000000..6dd504c
--- /dev/null
+++ b/src/ranap/RANAP_UESBI-Iu.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_UESBI_Iu_H_
+#define	_RANAP_UESBI_Iu_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_UESBI-IuA.h"
+#include "RANAP_UESBI-IuB.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UESBI-Iu */
+typedef struct RANAP_UESBI_Iu {
+	RANAP_UESBI_IuA_t	*uESBI_IuA	/* OPTIONAL */;
+	RANAP_UESBI_IuB_t	*uESBI_IuB	/* OPTIONAL */;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_UESBI_Iu_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UESBI_Iu;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UESBI_Iu_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UESBI-IuA.c b/src/ranap/RANAP_UESBI-IuA.c
new file mode 100644
index 0000000..fc3863a
--- /dev/null
+++ b/src/ranap/RANAP_UESBI-IuA.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_UESBI-IuA.h"
+
+int
+RANAP_UESBI_IuA_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size >= 1l && size <= 128l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_UESBI_IuA_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_BIT_STRING.free_struct;
+	td->print_struct   = asn_DEF_BIT_STRING.print_struct;
+	td->check_constraints = asn_DEF_BIT_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_BIT_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_BIT_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_BIT_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_BIT_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_BIT_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_BIT_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_BIT_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_BIT_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_BIT_STRING.per_constraints;
+	td->elements       = asn_DEF_BIT_STRING.elements;
+	td->elements_count = asn_DEF_BIT_STRING.elements_count;
+	td->specifics      = asn_DEF_BIT_STRING.specifics;
+}
+
+void
+RANAP_UESBI_IuA_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_UESBI_IuA_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_UESBI_IuA_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UESBI_IuA_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UESBI_IuA_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_UESBI_IuA_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_UESBI_IuA_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UESBI_IuA_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UESBI_IuA_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_UESBI_IuA_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_UESBI_IuA_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UESBI_IuA_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UESBI_IuA_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UESBI_IuA_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_UESBI_IuA_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UESBI_IuA_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_UESBI_IuA_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UESBI_IuA_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_UESBI_IuA_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UESBI_IuA_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_UESBI_IuA_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 7,  7,  1l,  128l }	/* (SIZE(1..128)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_UESBI_IuA_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UESBI_IuA = {
+	"RANAP_UESBI-IuA",
+	"RANAP_UESBI-IuA",
+	RANAP_UESBI_IuA_free,
+	RANAP_UESBI_IuA_print,
+	RANAP_UESBI_IuA_constraint,
+	RANAP_UESBI_IuA_decode_ber,
+	RANAP_UESBI_IuA_encode_der,
+	RANAP_UESBI_IuA_decode_xer,
+	RANAP_UESBI_IuA_encode_xer,
+	RANAP_UESBI_IuA_decode_uper,
+	RANAP_UESBI_IuA_encode_uper,
+	RANAP_UESBI_IuA_decode_aper,
+	RANAP_UESBI_IuA_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UESBI_IuA_tags_1,
+	sizeof(asn_DEF_RANAP_UESBI_IuA_tags_1)
+		/sizeof(asn_DEF_RANAP_UESBI_IuA_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UESBI_IuA_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UESBI_IuA_tags_1)
+		/sizeof(asn_DEF_RANAP_UESBI_IuA_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_UESBI_IuA_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_UESBI-IuA.h b/src/ranap/RANAP_UESBI-IuA.h
new file mode 100644
index 0000000..c4c51bb
--- /dev/null
+++ b/src/ranap/RANAP_UESBI-IuA.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_UESBI_IuA_H_
+#define	_RANAP_UESBI_IuA_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UESBI-IuA */
+typedef BIT_STRING_t	 RANAP_UESBI_IuA_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UESBI_IuA;
+asn_struct_free_f RANAP_UESBI_IuA_free;
+asn_struct_print_f RANAP_UESBI_IuA_print;
+asn_constr_check_f RANAP_UESBI_IuA_constraint;
+ber_type_decoder_f RANAP_UESBI_IuA_decode_ber;
+der_type_encoder_f RANAP_UESBI_IuA_encode_der;
+xer_type_decoder_f RANAP_UESBI_IuA_decode_xer;
+xer_type_encoder_f RANAP_UESBI_IuA_encode_xer;
+per_type_decoder_f RANAP_UESBI_IuA_decode_uper;
+per_type_encoder_f RANAP_UESBI_IuA_encode_uper;
+per_type_decoder_f RANAP_UESBI_IuA_decode_aper;
+per_type_encoder_f RANAP_UESBI_IuA_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UESBI_IuA_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UESBI-IuB.c b/src/ranap/RANAP_UESBI-IuB.c
new file mode 100644
index 0000000..da37f44
--- /dev/null
+++ b/src/ranap/RANAP_UESBI-IuB.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_UESBI-IuB.h"
+
+int
+RANAP_UESBI_IuB_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size >= 1l && size <= 128l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_UESBI_IuB_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_BIT_STRING.free_struct;
+	td->print_struct   = asn_DEF_BIT_STRING.print_struct;
+	td->check_constraints = asn_DEF_BIT_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_BIT_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_BIT_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_BIT_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_BIT_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_BIT_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_BIT_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_BIT_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_BIT_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_BIT_STRING.per_constraints;
+	td->elements       = asn_DEF_BIT_STRING.elements;
+	td->elements_count = asn_DEF_BIT_STRING.elements_count;
+	td->specifics      = asn_DEF_BIT_STRING.specifics;
+}
+
+void
+RANAP_UESBI_IuB_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_UESBI_IuB_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_UESBI_IuB_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UESBI_IuB_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UESBI_IuB_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_UESBI_IuB_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_UESBI_IuB_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UESBI_IuB_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UESBI_IuB_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_UESBI_IuB_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_UESBI_IuB_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UESBI_IuB_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UESBI_IuB_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UESBI_IuB_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_UESBI_IuB_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UESBI_IuB_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_UESBI_IuB_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UESBI_IuB_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_UESBI_IuB_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UESBI_IuB_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_UESBI_IuB_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 7,  7,  1l,  128l }	/* (SIZE(1..128)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_UESBI_IuB_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UESBI_IuB = {
+	"RANAP_UESBI-IuB",
+	"RANAP_UESBI-IuB",
+	RANAP_UESBI_IuB_free,
+	RANAP_UESBI_IuB_print,
+	RANAP_UESBI_IuB_constraint,
+	RANAP_UESBI_IuB_decode_ber,
+	RANAP_UESBI_IuB_encode_der,
+	RANAP_UESBI_IuB_decode_xer,
+	RANAP_UESBI_IuB_encode_xer,
+	RANAP_UESBI_IuB_decode_uper,
+	RANAP_UESBI_IuB_encode_uper,
+	RANAP_UESBI_IuB_decode_aper,
+	RANAP_UESBI_IuB_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UESBI_IuB_tags_1,
+	sizeof(asn_DEF_RANAP_UESBI_IuB_tags_1)
+		/sizeof(asn_DEF_RANAP_UESBI_IuB_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UESBI_IuB_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UESBI_IuB_tags_1)
+		/sizeof(asn_DEF_RANAP_UESBI_IuB_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_UESBI_IuB_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_UESBI-IuB.h b/src/ranap/RANAP_UESBI-IuB.h
new file mode 100644
index 0000000..4e8648b
--- /dev/null
+++ b/src/ranap/RANAP_UESBI-IuB.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_UESBI_IuB_H_
+#define	_RANAP_UESBI_IuB_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UESBI-IuB */
+typedef BIT_STRING_t	 RANAP_UESBI_IuB_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UESBI_IuB;
+asn_struct_free_f RANAP_UESBI_IuB_free;
+asn_struct_print_f RANAP_UESBI_IuB_print;
+asn_constr_check_f RANAP_UESBI_IuB_constraint;
+ber_type_decoder_f RANAP_UESBI_IuB_decode_ber;
+der_type_encoder_f RANAP_UESBI_IuB_encode_der;
+xer_type_decoder_f RANAP_UESBI_IuB_decode_xer;
+xer_type_encoder_f RANAP_UESBI_IuB_encode_xer;
+per_type_decoder_f RANAP_UESBI_IuB_decode_uper;
+per_type_encoder_f RANAP_UESBI_IuB_encode_uper;
+per_type_decoder_f RANAP_UESBI_IuB_decode_aper;
+per_type_encoder_f RANAP_UESBI_IuB_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UESBI_IuB_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UESpecificInformationIndication.c b/src/ranap/RANAP_UESpecificInformationIndication.c
new file mode 100644
index 0000000..89d1e16
--- /dev/null
+++ b/src/ranap/RANAP_UESpecificInformationIndication.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_UESpecificInformationIndication.h"
+
+static int
+memb_uESpecificInformationIndication_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_uESpecificInformationIndication_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_uESpecificInformationIndication_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_uESpecificInformationIndication_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_uESpecificInformationIndication_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_uESpecificInformationIndication_ies_specs_2 = {
+	sizeof(struct uESpecificInformationIndication_ies),
+	offsetof(struct uESpecificInformationIndication_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_uESpecificInformationIndication_ies_2 = {
+	"uESpecificInformationIndication-ies",
+	"uESpecificInformationIndication-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_uESpecificInformationIndication_ies_tags_2,
+	sizeof(asn_DEF_uESpecificInformationIndication_ies_tags_2)
+		/sizeof(asn_DEF_uESpecificInformationIndication_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_uESpecificInformationIndication_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_uESpecificInformationIndication_ies_tags_2)
+		/sizeof(asn_DEF_uESpecificInformationIndication_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_uESpecificInformationIndication_ies_constr_2,
+	asn_MBR_uESpecificInformationIndication_ies_2,
+	1,	/* Single element */
+	&asn_SPC_uESpecificInformationIndication_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_UESpecificInformationIndication_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UESpecificInformationIndication, uESpecificInformationIndication_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_uESpecificInformationIndication_ies_2,
+		memb_uESpecificInformationIndication_ies_constraint_1,
+		&asn_PER_memb_uESpecificInformationIndication_ies_constr_2,
+		0,
+		"uESpecificInformationIndication-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_UESpecificInformationIndication_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_UESpecificInformationIndication_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* uESpecificInformationIndication-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_UESpecificInformationIndication_specs_1 = {
+	sizeof(struct RANAP_UESpecificInformationIndication),
+	offsetof(struct RANAP_UESpecificInformationIndication, _asn_ctx),
+	asn_MAP_RANAP_UESpecificInformationIndication_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UESpecificInformationIndication = {
+	"RANAP_UESpecificInformationIndication",
+	"RANAP_UESpecificInformationIndication",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UESpecificInformationIndication_tags_1,
+	sizeof(asn_DEF_RANAP_UESpecificInformationIndication_tags_1)
+		/sizeof(asn_DEF_RANAP_UESpecificInformationIndication_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UESpecificInformationIndication_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UESpecificInformationIndication_tags_1)
+		/sizeof(asn_DEF_RANAP_UESpecificInformationIndication_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_UESpecificInformationIndication_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_UESpecificInformationIndication_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_UESpecificInformationIndication.h b/src/ranap/RANAP_UESpecificInformationIndication.h
new file mode 100644
index 0000000..b2a4782
--- /dev/null
+++ b/src/ranap/RANAP_UESpecificInformationIndication.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_UESpecificInformationIndication_H_
+#define	_RANAP_UESpecificInformationIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UESpecificInformationIndication */
+typedef struct RANAP_UESpecificInformationIndication {
+	struct uESpecificInformationIndication_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} uESpecificInformationIndication_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_UESpecificInformationIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UESpecificInformationIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UESpecificInformationIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UL-GTP-PDU-SequenceNumber.c b/src/ranap/RANAP_UL-GTP-PDU-SequenceNumber.c
new file mode 100644
index 0000000..a12bc8c
--- /dev/null
+++ b/src/ranap/RANAP_UL-GTP-PDU-SequenceNumber.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_UL-GTP-PDU-SequenceNumber.h"
+
+int
+RANAP_UL_GTP_PDU_SequenceNumber_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 65535l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_UL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_UL_GTP_PDU_SequenceNumber_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_UL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_UL_GTP_PDU_SequenceNumber_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UL_GTP_PDU_SequenceNumber_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_UL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_UL_GTP_PDU_SequenceNumber_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UL_GTP_PDU_SequenceNumber_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_UL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_UL_GTP_PDU_SequenceNumber_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UL_GTP_PDU_SequenceNumber_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_UL_GTP_PDU_SequenceNumber_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_UL_GTP_PDU_SequenceNumber_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_UL_GTP_PDU_SequenceNumber_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UL_GTP_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_UL_GTP_PDU_SequenceNumber_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_UL_GTP_PDU_SequenceNumber_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UL_GTP_PDU_SequenceNumber = {
+	"RANAP_UL-GTP-PDU-SequenceNumber",
+	"RANAP_UL-GTP-PDU-SequenceNumber",
+	RANAP_UL_GTP_PDU_SequenceNumber_free,
+	RANAP_UL_GTP_PDU_SequenceNumber_print,
+	RANAP_UL_GTP_PDU_SequenceNumber_constraint,
+	RANAP_UL_GTP_PDU_SequenceNumber_decode_ber,
+	RANAP_UL_GTP_PDU_SequenceNumber_encode_der,
+	RANAP_UL_GTP_PDU_SequenceNumber_decode_xer,
+	RANAP_UL_GTP_PDU_SequenceNumber_encode_xer,
+	RANAP_UL_GTP_PDU_SequenceNumber_decode_uper,
+	RANAP_UL_GTP_PDU_SequenceNumber_encode_uper,
+	RANAP_UL_GTP_PDU_SequenceNumber_decode_aper,
+	RANAP_UL_GTP_PDU_SequenceNumber_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UL_GTP_PDU_SequenceNumber_tags_1,
+	sizeof(asn_DEF_RANAP_UL_GTP_PDU_SequenceNumber_tags_1)
+		/sizeof(asn_DEF_RANAP_UL_GTP_PDU_SequenceNumber_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UL_GTP_PDU_SequenceNumber_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UL_GTP_PDU_SequenceNumber_tags_1)
+		/sizeof(asn_DEF_RANAP_UL_GTP_PDU_SequenceNumber_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_UL_GTP_PDU_SequenceNumber_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_UL-GTP-PDU-SequenceNumber.h b/src/ranap/RANAP_UL-GTP-PDU-SequenceNumber.h
new file mode 100644
index 0000000..3a969ae
--- /dev/null
+++ b/src/ranap/RANAP_UL-GTP-PDU-SequenceNumber.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_UL_GTP_PDU_SequenceNumber_H_
+#define	_RANAP_UL_GTP_PDU_SequenceNumber_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UL-GTP-PDU-SequenceNumber */
+typedef long	 RANAP_UL_GTP_PDU_SequenceNumber_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UL_GTP_PDU_SequenceNumber;
+asn_struct_free_f RANAP_UL_GTP_PDU_SequenceNumber_free;
+asn_struct_print_f RANAP_UL_GTP_PDU_SequenceNumber_print;
+asn_constr_check_f RANAP_UL_GTP_PDU_SequenceNumber_constraint;
+ber_type_decoder_f RANAP_UL_GTP_PDU_SequenceNumber_decode_ber;
+der_type_encoder_f RANAP_UL_GTP_PDU_SequenceNumber_encode_der;
+xer_type_decoder_f RANAP_UL_GTP_PDU_SequenceNumber_decode_xer;
+xer_type_encoder_f RANAP_UL_GTP_PDU_SequenceNumber_encode_xer;
+per_type_decoder_f RANAP_UL_GTP_PDU_SequenceNumber_decode_uper;
+per_type_encoder_f RANAP_UL_GTP_PDU_SequenceNumber_encode_uper;
+per_type_decoder_f RANAP_UL_GTP_PDU_SequenceNumber_decode_aper;
+per_type_encoder_f RANAP_UL_GTP_PDU_SequenceNumber_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UL_GTP_PDU_SequenceNumber_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UL-N-PDU-SequenceNumber.c b/src/ranap/RANAP_UL-N-PDU-SequenceNumber.c
new file mode 100644
index 0000000..6641d9a
--- /dev/null
+++ b/src/ranap/RANAP_UL-N-PDU-SequenceNumber.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_UL-N-PDU-SequenceNumber.h"
+
+int
+RANAP_UL_N_PDU_SequenceNumber_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 65535l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_UL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_UL_N_PDU_SequenceNumber_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_UL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_UL_N_PDU_SequenceNumber_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UL_N_PDU_SequenceNumber_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_UL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_UL_N_PDU_SequenceNumber_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UL_N_PDU_SequenceNumber_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_UL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_UL_N_PDU_SequenceNumber_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UL_N_PDU_SequenceNumber_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_UL_N_PDU_SequenceNumber_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_UL_N_PDU_SequenceNumber_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_UL_N_PDU_SequenceNumber_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UL_N_PDU_SequenceNumber_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_UL_N_PDU_SequenceNumber_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_UL_N_PDU_SequenceNumber_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UL_N_PDU_SequenceNumber = {
+	"RANAP_UL-N-PDU-SequenceNumber",
+	"RANAP_UL-N-PDU-SequenceNumber",
+	RANAP_UL_N_PDU_SequenceNumber_free,
+	RANAP_UL_N_PDU_SequenceNumber_print,
+	RANAP_UL_N_PDU_SequenceNumber_constraint,
+	RANAP_UL_N_PDU_SequenceNumber_decode_ber,
+	RANAP_UL_N_PDU_SequenceNumber_encode_der,
+	RANAP_UL_N_PDU_SequenceNumber_decode_xer,
+	RANAP_UL_N_PDU_SequenceNumber_encode_xer,
+	RANAP_UL_N_PDU_SequenceNumber_decode_uper,
+	RANAP_UL_N_PDU_SequenceNumber_encode_uper,
+	RANAP_UL_N_PDU_SequenceNumber_decode_aper,
+	RANAP_UL_N_PDU_SequenceNumber_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UL_N_PDU_SequenceNumber_tags_1,
+	sizeof(asn_DEF_RANAP_UL_N_PDU_SequenceNumber_tags_1)
+		/sizeof(asn_DEF_RANAP_UL_N_PDU_SequenceNumber_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UL_N_PDU_SequenceNumber_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UL_N_PDU_SequenceNumber_tags_1)
+		/sizeof(asn_DEF_RANAP_UL_N_PDU_SequenceNumber_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_UL_N_PDU_SequenceNumber_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_UL-N-PDU-SequenceNumber.h b/src/ranap/RANAP_UL-N-PDU-SequenceNumber.h
new file mode 100644
index 0000000..b7304c7
--- /dev/null
+++ b/src/ranap/RANAP_UL-N-PDU-SequenceNumber.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_UL_N_PDU_SequenceNumber_H_
+#define	_RANAP_UL_N_PDU_SequenceNumber_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UL-N-PDU-SequenceNumber */
+typedef long	 RANAP_UL_N_PDU_SequenceNumber_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UL_N_PDU_SequenceNumber;
+asn_struct_free_f RANAP_UL_N_PDU_SequenceNumber_free;
+asn_struct_print_f RANAP_UL_N_PDU_SequenceNumber_print;
+asn_constr_check_f RANAP_UL_N_PDU_SequenceNumber_constraint;
+ber_type_decoder_f RANAP_UL_N_PDU_SequenceNumber_decode_ber;
+der_type_encoder_f RANAP_UL_N_PDU_SequenceNumber_encode_der;
+xer_type_decoder_f RANAP_UL_N_PDU_SequenceNumber_decode_xer;
+xer_type_encoder_f RANAP_UL_N_PDU_SequenceNumber_encode_xer;
+per_type_decoder_f RANAP_UL_N_PDU_SequenceNumber_decode_uper;
+per_type_encoder_f RANAP_UL_N_PDU_SequenceNumber_encode_uper;
+per_type_decoder_f RANAP_UL_N_PDU_SequenceNumber_decode_aper;
+per_type_encoder_f RANAP_UL_N_PDU_SequenceNumber_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UL_N_PDU_SequenceNumber_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UP-ModeVersions.c b/src/ranap/RANAP_UP-ModeVersions.c
new file mode 100644
index 0000000..7d70d1e
--- /dev/null
+++ b/src/ranap/RANAP_UP-ModeVersions.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_UP-ModeVersions.h"
+
+int
+RANAP_UP_ModeVersions_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 16l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_UP_ModeVersions_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_BIT_STRING.free_struct;
+	td->print_struct   = asn_DEF_BIT_STRING.print_struct;
+	td->check_constraints = asn_DEF_BIT_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_BIT_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_BIT_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_BIT_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_BIT_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_BIT_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_BIT_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_BIT_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_BIT_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_BIT_STRING.per_constraints;
+	td->elements       = asn_DEF_BIT_STRING.elements;
+	td->elements_count = asn_DEF_BIT_STRING.elements_count;
+	td->specifics      = asn_DEF_BIT_STRING.specifics;
+}
+
+void
+RANAP_UP_ModeVersions_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_UP_ModeVersions_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_UP_ModeVersions_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UP_ModeVersions_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UP_ModeVersions_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_UP_ModeVersions_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_UP_ModeVersions_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UP_ModeVersions_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UP_ModeVersions_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_UP_ModeVersions_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_UP_ModeVersions_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UP_ModeVersions_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UP_ModeVersions_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UP_ModeVersions_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_UP_ModeVersions_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UP_ModeVersions_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_UP_ModeVersions_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UP_ModeVersions_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_UP_ModeVersions_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UP_ModeVersions_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_UP_ModeVersions_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  16l,  16l }	/* (SIZE(16..16)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_UP_ModeVersions_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UP_ModeVersions = {
+	"RANAP_UP-ModeVersions",
+	"RANAP_UP-ModeVersions",
+	RANAP_UP_ModeVersions_free,
+	RANAP_UP_ModeVersions_print,
+	RANAP_UP_ModeVersions_constraint,
+	RANAP_UP_ModeVersions_decode_ber,
+	RANAP_UP_ModeVersions_encode_der,
+	RANAP_UP_ModeVersions_decode_xer,
+	RANAP_UP_ModeVersions_encode_xer,
+	RANAP_UP_ModeVersions_decode_uper,
+	RANAP_UP_ModeVersions_encode_uper,
+	RANAP_UP_ModeVersions_decode_aper,
+	RANAP_UP_ModeVersions_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UP_ModeVersions_tags_1,
+	sizeof(asn_DEF_RANAP_UP_ModeVersions_tags_1)
+		/sizeof(asn_DEF_RANAP_UP_ModeVersions_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UP_ModeVersions_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UP_ModeVersions_tags_1)
+		/sizeof(asn_DEF_RANAP_UP_ModeVersions_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_UP_ModeVersions_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_UP-ModeVersions.h b/src/ranap/RANAP_UP-ModeVersions.h
new file mode 100644
index 0000000..209bb28
--- /dev/null
+++ b/src/ranap/RANAP_UP-ModeVersions.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_UP_ModeVersions_H_
+#define	_RANAP_UP_ModeVersions_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UP-ModeVersions */
+typedef BIT_STRING_t	 RANAP_UP_ModeVersions_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UP_ModeVersions;
+asn_struct_free_f RANAP_UP_ModeVersions_free;
+asn_struct_print_f RANAP_UP_ModeVersions_print;
+asn_constr_check_f RANAP_UP_ModeVersions_constraint;
+ber_type_decoder_f RANAP_UP_ModeVersions_decode_ber;
+der_type_encoder_f RANAP_UP_ModeVersions_encode_der;
+xer_type_decoder_f RANAP_UP_ModeVersions_decode_xer;
+xer_type_encoder_f RANAP_UP_ModeVersions_encode_xer;
+per_type_decoder_f RANAP_UP_ModeVersions_decode_uper;
+per_type_encoder_f RANAP_UP_ModeVersions_encode_uper;
+per_type_decoder_f RANAP_UP_ModeVersions_decode_aper;
+per_type_encoder_f RANAP_UP_ModeVersions_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UP_ModeVersions_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UPInformation.c b/src/ranap/RANAP_UPInformation.c
new file mode 100644
index 0000000..3c46dbf
--- /dev/null
+++ b/src/ranap/RANAP_UPInformation.c
@@ -0,0 +1,123 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_UPInformation.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_UPInformation_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UPInformation, frameSeqNoUL),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_FrameSequenceNumber,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"frameSeqNoUL"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UPInformation, frameSeqNoDL),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_FrameSequenceNumber,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"frameSeqNoDL"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UPInformation, pdu14FrameSeqNoUL),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PDUType14FrameSequenceNumber,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pdu14FrameSeqNoUL"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UPInformation, pdu14FrameSeqNoDL),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PDUType14FrameSequenceNumber,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pdu14FrameSeqNoDL"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UPInformation, dataPDUType),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_DataPDUType,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"dataPDUType"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UPInformation, upinitialisationFrame),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_UPInitialisationFrame,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"upinitialisationFrame"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_UPInformation, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_UPInformation_oms_1[] = { 6 };
+static const ber_tlv_tag_t asn_DEF_RANAP_UPInformation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_UPInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frameSeqNoUL */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* frameSeqNoDL */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pdu14FrameSeqNoUL */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* pdu14FrameSeqNoDL */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dataPDUType */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* upinitialisationFrame */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_UPInformation_specs_1 = {
+	sizeof(struct RANAP_UPInformation),
+	offsetof(struct RANAP_UPInformation, _asn_ctx),
+	asn_MAP_RANAP_UPInformation_tag2el_1,
+	7,	/* Count of tags in the map */
+	asn_MAP_RANAP_UPInformation_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	6,	/* Start extensions */
+	8	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UPInformation = {
+	"RANAP_UPInformation",
+	"RANAP_UPInformation",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UPInformation_tags_1,
+	sizeof(asn_DEF_RANAP_UPInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_UPInformation_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UPInformation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UPInformation_tags_1)
+		/sizeof(asn_DEF_RANAP_UPInformation_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_UPInformation_1,
+	7,	/* Elements count */
+	&asn_SPC_RANAP_UPInformation_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_UPInformation.h b/src/ranap/RANAP_UPInformation.h
new file mode 100644
index 0000000..23e7e70
--- /dev/null
+++ b/src/ranap/RANAP_UPInformation.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_UPInformation_H_
+#define	_RANAP_UPInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_FrameSequenceNumber.h"
+#include "RANAP_PDUType14FrameSequenceNumber.h"
+#include "RANAP_DataPDUType.h"
+#include "RANAP_UPInitialisationFrame.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UPInformation */
+typedef struct RANAP_UPInformation {
+	RANAP_FrameSequenceNumber_t	 frameSeqNoUL;
+	RANAP_FrameSequenceNumber_t	 frameSeqNoDL;
+	RANAP_PDUType14FrameSequenceNumber_t	 pdu14FrameSeqNoUL;
+	RANAP_PDUType14FrameSequenceNumber_t	 pdu14FrameSeqNoDL;
+	RANAP_DataPDUType_t	 dataPDUType;
+	RANAP_UPInitialisationFrame_t	 upinitialisationFrame;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_UPInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UPInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UPInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UPInitialisationFrame.c b/src/ranap/RANAP_UPInitialisationFrame.c
new file mode 100644
index 0000000..a892d93
--- /dev/null
+++ b/src/ranap/RANAP_UPInitialisationFrame.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_UPInitialisationFrame.h"
+
+int
+RANAP_UPInitialisationFrame_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_UPInitialisationFrame_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_OCTET_STRING.free_struct;
+	td->print_struct   = asn_DEF_OCTET_STRING.print_struct;
+	td->check_constraints = asn_DEF_OCTET_STRING.check_constraints;
+	td->ber_decoder    = asn_DEF_OCTET_STRING.ber_decoder;
+	td->der_encoder    = asn_DEF_OCTET_STRING.der_encoder;
+	td->xer_decoder    = asn_DEF_OCTET_STRING.xer_decoder;
+	td->xer_encoder    = asn_DEF_OCTET_STRING.xer_encoder;
+	td->uper_decoder   = asn_DEF_OCTET_STRING.uper_decoder;
+	td->uper_encoder   = asn_DEF_OCTET_STRING.uper_encoder;
+	td->aper_decoder   = asn_DEF_OCTET_STRING.aper_decoder;
+	td->aper_encoder   = asn_DEF_OCTET_STRING.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+	td->elements       = asn_DEF_OCTET_STRING.elements;
+	td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+	td->specifics      = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+RANAP_UPInitialisationFrame_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_UPInitialisationFrame_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_UPInitialisationFrame_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UPInitialisationFrame_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UPInitialisationFrame_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_UPInitialisationFrame_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_UPInitialisationFrame_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UPInitialisationFrame_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UPInitialisationFrame_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_UPInitialisationFrame_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_UPInitialisationFrame_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UPInitialisationFrame_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UPInitialisationFrame_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UPInitialisationFrame_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_UPInitialisationFrame_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UPInitialisationFrame_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_UPInitialisationFrame_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UPInitialisationFrame_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_UPInitialisationFrame_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UPInitialisationFrame_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static const ber_tlv_tag_t asn_DEF_RANAP_UPInitialisationFrame_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UPInitialisationFrame = {
+	"RANAP_UPInitialisationFrame",
+	"RANAP_UPInitialisationFrame",
+	RANAP_UPInitialisationFrame_free,
+	RANAP_UPInitialisationFrame_print,
+	RANAP_UPInitialisationFrame_constraint,
+	RANAP_UPInitialisationFrame_decode_ber,
+	RANAP_UPInitialisationFrame_encode_der,
+	RANAP_UPInitialisationFrame_decode_xer,
+	RANAP_UPInitialisationFrame_encode_xer,
+	RANAP_UPInitialisationFrame_decode_uper,
+	RANAP_UPInitialisationFrame_encode_uper,
+	RANAP_UPInitialisationFrame_decode_aper,
+	RANAP_UPInitialisationFrame_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UPInitialisationFrame_tags_1,
+	sizeof(asn_DEF_RANAP_UPInitialisationFrame_tags_1)
+		/sizeof(asn_DEF_RANAP_UPInitialisationFrame_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UPInitialisationFrame_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UPInitialisationFrame_tags_1)
+		/sizeof(asn_DEF_RANAP_UPInitialisationFrame_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_UPInitialisationFrame.h b/src/ranap/RANAP_UPInitialisationFrame.h
new file mode 100644
index 0000000..1118f14
--- /dev/null
+++ b/src/ranap/RANAP_UPInitialisationFrame.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_UPInitialisationFrame_H_
+#define	_RANAP_UPInitialisationFrame_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UPInitialisationFrame */
+typedef OCTET_STRING_t	 RANAP_UPInitialisationFrame_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UPInitialisationFrame;
+asn_struct_free_f RANAP_UPInitialisationFrame_free;
+asn_struct_print_f RANAP_UPInitialisationFrame_print;
+asn_constr_check_f RANAP_UPInitialisationFrame_constraint;
+ber_type_decoder_f RANAP_UPInitialisationFrame_decode_ber;
+der_type_encoder_f RANAP_UPInitialisationFrame_encode_der;
+xer_type_decoder_f RANAP_UPInitialisationFrame_decode_xer;
+xer_type_encoder_f RANAP_UPInitialisationFrame_encode_xer;
+per_type_decoder_f RANAP_UPInitialisationFrame_decode_uper;
+per_type_encoder_f RANAP_UPInitialisationFrame_encode_uper;
+per_type_decoder_f RANAP_UPInitialisationFrame_decode_aper;
+per_type_encoder_f RANAP_UPInitialisationFrame_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UPInitialisationFrame_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_USCH-ID.c b/src/ranap/RANAP_USCH-ID.c
new file mode 100644
index 0000000..4585a23
--- /dev/null
+++ b/src/ranap/RANAP_USCH-ID.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_USCH-ID.h"
+
+int
+RANAP_USCH_ID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 255l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_USCH_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_USCH_ID_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_USCH_ID_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_USCH_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_USCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_USCH_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_USCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_USCH_ID_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_USCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_USCH_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_USCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_USCH_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_USCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_USCH_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_USCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_USCH_ID_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_USCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_USCH_ID_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_USCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_USCH_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_USCH_ID_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_USCH_ID_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  0l,  255l }	/* (0..255) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_USCH_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_USCH_ID = {
+	"RANAP_USCH-ID",
+	"RANAP_USCH-ID",
+	RANAP_USCH_ID_free,
+	RANAP_USCH_ID_print,
+	RANAP_USCH_ID_constraint,
+	RANAP_USCH_ID_decode_ber,
+	RANAP_USCH_ID_encode_der,
+	RANAP_USCH_ID_decode_xer,
+	RANAP_USCH_ID_encode_xer,
+	RANAP_USCH_ID_decode_uper,
+	RANAP_USCH_ID_encode_uper,
+	RANAP_USCH_ID_decode_aper,
+	RANAP_USCH_ID_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_USCH_ID_tags_1,
+	sizeof(asn_DEF_RANAP_USCH_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_USCH_ID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_USCH_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_USCH_ID_tags_1)
+		/sizeof(asn_DEF_RANAP_USCH_ID_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_USCH_ID_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_USCH-ID.h b/src/ranap/RANAP_USCH-ID.h
new file mode 100644
index 0000000..2462e8e
--- /dev/null
+++ b/src/ranap/RANAP_USCH-ID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_USCH_ID_H_
+#define	_RANAP_USCH_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_USCH-ID */
+typedef long	 RANAP_USCH_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_USCH_ID;
+asn_struct_free_f RANAP_USCH_ID_free;
+asn_struct_print_f RANAP_USCH_ID_print;
+asn_constr_check_f RANAP_USCH_ID_constraint;
+ber_type_decoder_f RANAP_USCH_ID_decode_ber;
+der_type_encoder_f RANAP_USCH_ID_encode_der;
+xer_type_decoder_f RANAP_USCH_ID_decode_xer;
+xer_type_encoder_f RANAP_USCH_ID_encode_xer;
+per_type_decoder_f RANAP_USCH_ID_decode_uper;
+per_type_encoder_f RANAP_USCH_ID_encode_uper;
+per_type_decoder_f RANAP_USCH_ID_decode_aper;
+per_type_encoder_f RANAP_USCH_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_USCH_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UTRAN-CellID.c b/src/ranap/RANAP_UTRAN-CellID.c
new file mode 100644
index 0000000..9005bee
--- /dev/null
+++ b/src/ranap/RANAP_UTRAN-CellID.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_UTRAN-CellID.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_UTRAN_CellID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UTRAN_CellID, pLMNidentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_PLMNidentity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"pLMNidentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UTRAN_CellID, cellID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TargetCellId,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"cellID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_UTRAN_CellID, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_UTRAN_CellID_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_UTRAN_CellID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_UTRAN_CellID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_UTRAN_CellID_specs_1 = {
+	sizeof(struct RANAP_UTRAN_CellID),
+	offsetof(struct RANAP_UTRAN_CellID, _asn_ctx),
+	asn_MAP_RANAP_UTRAN_CellID_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_UTRAN_CellID_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UTRAN_CellID = {
+	"RANAP_UTRAN-CellID",
+	"RANAP_UTRAN-CellID",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UTRAN_CellID_tags_1,
+	sizeof(asn_DEF_RANAP_UTRAN_CellID_tags_1)
+		/sizeof(asn_DEF_RANAP_UTRAN_CellID_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UTRAN_CellID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UTRAN_CellID_tags_1)
+		/sizeof(asn_DEF_RANAP_UTRAN_CellID_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_UTRAN_CellID_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_UTRAN_CellID_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_UTRAN-CellID.h b/src/ranap/RANAP_UTRAN-CellID.h
new file mode 100644
index 0000000..de66d45
--- /dev/null
+++ b/src/ranap/RANAP_UTRAN-CellID.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_UTRAN_CellID_H_
+#define	_RANAP_UTRAN_CellID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_PLMNidentity.h"
+#include "RANAP_TargetCellId.h"
+#include "RANAP_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UTRAN-CellID */
+typedef struct RANAP_UTRAN_CellID {
+	RANAP_PLMNidentity_t	 pLMNidentity;
+	RANAP_TargetCellId_t	 cellID;
+	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_UTRAN_CellID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UTRAN_CellID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UTRAN_CellID_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UeRadioCapabilityMatchRequest.c b/src/ranap/RANAP_UeRadioCapabilityMatchRequest.c
new file mode 100644
index 0000000..30a1a65
--- /dev/null
+++ b/src/ranap/RANAP_UeRadioCapabilityMatchRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_UeRadioCapabilityMatchRequest.h"
+
+static int
+memb_ueRadioCapabilityMatchRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_ueRadioCapabilityMatchRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_ueRadioCapabilityMatchRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ueRadioCapabilityMatchRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ueRadioCapabilityMatchRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ueRadioCapabilityMatchRequest_ies_specs_2 = {
+	sizeof(struct ueRadioCapabilityMatchRequest_ies),
+	offsetof(struct ueRadioCapabilityMatchRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ueRadioCapabilityMatchRequest_ies_2 = {
+	"ueRadioCapabilityMatchRequest-ies",
+	"ueRadioCapabilityMatchRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_ueRadioCapabilityMatchRequest_ies_tags_2,
+	sizeof(asn_DEF_ueRadioCapabilityMatchRequest_ies_tags_2)
+		/sizeof(asn_DEF_ueRadioCapabilityMatchRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ueRadioCapabilityMatchRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ueRadioCapabilityMatchRequest_ies_tags_2)
+		/sizeof(asn_DEF_ueRadioCapabilityMatchRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_ueRadioCapabilityMatchRequest_ies_constr_2,
+	asn_MBR_ueRadioCapabilityMatchRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_ueRadioCapabilityMatchRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_UeRadioCapabilityMatchRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UeRadioCapabilityMatchRequest, ueRadioCapabilityMatchRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ueRadioCapabilityMatchRequest_ies_2,
+		memb_ueRadioCapabilityMatchRequest_ies_constraint_1,
+		&asn_PER_memb_ueRadioCapabilityMatchRequest_ies_constr_2,
+		0,
+		"ueRadioCapabilityMatchRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_UeRadioCapabilityMatchRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_UeRadioCapabilityMatchRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ueRadioCapabilityMatchRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_UeRadioCapabilityMatchRequest_specs_1 = {
+	sizeof(struct RANAP_UeRadioCapabilityMatchRequest),
+	offsetof(struct RANAP_UeRadioCapabilityMatchRequest, _asn_ctx),
+	asn_MAP_RANAP_UeRadioCapabilityMatchRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UeRadioCapabilityMatchRequest = {
+	"RANAP_UeRadioCapabilityMatchRequest",
+	"RANAP_UeRadioCapabilityMatchRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UeRadioCapabilityMatchRequest_tags_1,
+	sizeof(asn_DEF_RANAP_UeRadioCapabilityMatchRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_UeRadioCapabilityMatchRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UeRadioCapabilityMatchRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UeRadioCapabilityMatchRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_UeRadioCapabilityMatchRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_UeRadioCapabilityMatchRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_UeRadioCapabilityMatchRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_UeRadioCapabilityMatchRequest.h b/src/ranap/RANAP_UeRadioCapabilityMatchRequest.h
new file mode 100644
index 0000000..5c8c01b
--- /dev/null
+++ b/src/ranap/RANAP_UeRadioCapabilityMatchRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_UeRadioCapabilityMatchRequest_H_
+#define	_RANAP_UeRadioCapabilityMatchRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UeRadioCapabilityMatchRequest */
+typedef struct RANAP_UeRadioCapabilityMatchRequest {
+	struct ueRadioCapabilityMatchRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ueRadioCapabilityMatchRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_UeRadioCapabilityMatchRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UeRadioCapabilityMatchRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UeRadioCapabilityMatchRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UeRadioCapabilityMatchResponse.c b/src/ranap/RANAP_UeRadioCapabilityMatchResponse.c
new file mode 100644
index 0000000..4f56f8d
--- /dev/null
+++ b/src/ranap/RANAP_UeRadioCapabilityMatchResponse.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_UeRadioCapabilityMatchResponse.h"
+
+static int
+memb_ueRadioCapabilityMatchResponse_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_ueRadioCapabilityMatchResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_ueRadioCapabilityMatchResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ueRadioCapabilityMatchResponse_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ueRadioCapabilityMatchResponse_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ueRadioCapabilityMatchResponse_ies_specs_2 = {
+	sizeof(struct ueRadioCapabilityMatchResponse_ies),
+	offsetof(struct ueRadioCapabilityMatchResponse_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ueRadioCapabilityMatchResponse_ies_2 = {
+	"ueRadioCapabilityMatchResponse-ies",
+	"ueRadioCapabilityMatchResponse-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_ueRadioCapabilityMatchResponse_ies_tags_2,
+	sizeof(asn_DEF_ueRadioCapabilityMatchResponse_ies_tags_2)
+		/sizeof(asn_DEF_ueRadioCapabilityMatchResponse_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ueRadioCapabilityMatchResponse_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ueRadioCapabilityMatchResponse_ies_tags_2)
+		/sizeof(asn_DEF_ueRadioCapabilityMatchResponse_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_ueRadioCapabilityMatchResponse_ies_constr_2,
+	asn_MBR_ueRadioCapabilityMatchResponse_ies_2,
+	1,	/* Single element */
+	&asn_SPC_ueRadioCapabilityMatchResponse_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_UeRadioCapabilityMatchResponse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UeRadioCapabilityMatchResponse, ueRadioCapabilityMatchResponse_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ueRadioCapabilityMatchResponse_ies_2,
+		memb_ueRadioCapabilityMatchResponse_ies_constraint_1,
+		&asn_PER_memb_ueRadioCapabilityMatchResponse_ies_constr_2,
+		0,
+		"ueRadioCapabilityMatchResponse-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_UeRadioCapabilityMatchResponse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_UeRadioCapabilityMatchResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ueRadioCapabilityMatchResponse-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_UeRadioCapabilityMatchResponse_specs_1 = {
+	sizeof(struct RANAP_UeRadioCapabilityMatchResponse),
+	offsetof(struct RANAP_UeRadioCapabilityMatchResponse, _asn_ctx),
+	asn_MAP_RANAP_UeRadioCapabilityMatchResponse_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UeRadioCapabilityMatchResponse = {
+	"RANAP_UeRadioCapabilityMatchResponse",
+	"RANAP_UeRadioCapabilityMatchResponse",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UeRadioCapabilityMatchResponse_tags_1,
+	sizeof(asn_DEF_RANAP_UeRadioCapabilityMatchResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_UeRadioCapabilityMatchResponse_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UeRadioCapabilityMatchResponse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UeRadioCapabilityMatchResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_UeRadioCapabilityMatchResponse_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_UeRadioCapabilityMatchResponse_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_UeRadioCapabilityMatchResponse_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_UeRadioCapabilityMatchResponse.h b/src/ranap/RANAP_UeRadioCapabilityMatchResponse.h
new file mode 100644
index 0000000..8142c63
--- /dev/null
+++ b/src/ranap/RANAP_UeRadioCapabilityMatchResponse.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_UeRadioCapabilityMatchResponse_H_
+#define	_RANAP_UeRadioCapabilityMatchResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UeRadioCapabilityMatchResponse */
+typedef struct RANAP_UeRadioCapabilityMatchResponse {
+	struct ueRadioCapabilityMatchResponse_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ueRadioCapabilityMatchResponse_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_UeRadioCapabilityMatchResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UeRadioCapabilityMatchResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UeRadioCapabilityMatchResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UnsuccessfulOutcome.c b/src/ranap/RANAP_UnsuccessfulOutcome.c
new file mode 100644
index 0000000..6ea65b1
--- /dev/null
+++ b/src/ranap/RANAP_UnsuccessfulOutcome.c
@@ -0,0 +1,81 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_UnsuccessfulOutcome.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_UnsuccessfulOutcome_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UnsuccessfulOutcome, procedureCode),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ProcedureCode,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"procedureCode"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UnsuccessfulOutcome, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Criticality,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"criticality"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UnsuccessfulOutcome, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ANY,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_UnsuccessfulOutcome_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_UnsuccessfulOutcome_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_UnsuccessfulOutcome_specs_1 = {
+	sizeof(struct RANAP_UnsuccessfulOutcome),
+	offsetof(struct RANAP_UnsuccessfulOutcome, _asn_ctx),
+	asn_MAP_RANAP_UnsuccessfulOutcome_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UnsuccessfulOutcome = {
+	"RANAP_UnsuccessfulOutcome",
+	"RANAP_UnsuccessfulOutcome",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UnsuccessfulOutcome_tags_1,
+	sizeof(asn_DEF_RANAP_UnsuccessfulOutcome_tags_1)
+		/sizeof(asn_DEF_RANAP_UnsuccessfulOutcome_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UnsuccessfulOutcome_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UnsuccessfulOutcome_tags_1)
+		/sizeof(asn_DEF_RANAP_UnsuccessfulOutcome_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_UnsuccessfulOutcome_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_UnsuccessfulOutcome_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_UnsuccessfulOutcome.h b/src/ranap/RANAP_UnsuccessfulOutcome.h
new file mode 100644
index 0000000..5f77557
--- /dev/null
+++ b/src/ranap/RANAP_UnsuccessfulOutcome.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_UnsuccessfulOutcome_H_
+#define	_RANAP_UnsuccessfulOutcome_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_ProcedureCode.h"
+#include "RANAP_Criticality.h"
+#include <ANY.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UnsuccessfulOutcome */
+typedef struct RANAP_UnsuccessfulOutcome {
+	RANAP_ProcedureCode_t	 procedureCode;
+	RANAP_Criticality_t	 criticality;
+	ANY_t	 value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_UnsuccessfulOutcome_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UnsuccessfulOutcome;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UnsuccessfulOutcome_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UnsuccessfullyTransmittedDataVolume.c b/src/ranap/RANAP_UnsuccessfullyTransmittedDataVolume.c
new file mode 100644
index 0000000..76bfea6
--- /dev/null
+++ b/src/ranap/RANAP_UnsuccessfullyTransmittedDataVolume.c
@@ -0,0 +1,161 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_UnsuccessfullyTransmittedDataVolume.h"
+
+int
+RANAP_UnsuccessfullyTransmittedDataVolume_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	/* Constraint check succeeded */
+	return 0;
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_UnsuccessfullyTransmittedDataVolume_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+     /* td->specifics      = asn_DEF_NativeInteger.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_UnsuccessfullyTransmittedDataVolume_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_UnsuccessfullyTransmittedDataVolume_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_UnsuccessfullyTransmittedDataVolume_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UnsuccessfullyTransmittedDataVolume_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UnsuccessfullyTransmittedDataVolume_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_UnsuccessfullyTransmittedDataVolume_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_UnsuccessfullyTransmittedDataVolume_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UnsuccessfullyTransmittedDataVolume_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UnsuccessfullyTransmittedDataVolume_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_UnsuccessfullyTransmittedDataVolume_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_UnsuccessfullyTransmittedDataVolume_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UnsuccessfullyTransmittedDataVolume_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UnsuccessfullyTransmittedDataVolume_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UnsuccessfullyTransmittedDataVolume_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_UnsuccessfullyTransmittedDataVolume_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UnsuccessfullyTransmittedDataVolume_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_UnsuccessfullyTransmittedDataVolume_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UnsuccessfullyTransmittedDataVolume_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_UnsuccessfullyTransmittedDataVolume_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UnsuccessfullyTransmittedDataVolume_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_UnsuccessfullyTransmittedDataVolume_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 32, -1,  0l, 4294967295ul }	/* (0..4294967295) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_UnsuccessfullyTransmittedDataVolume_specs_1 = {
+	0,	0,	0,	0,	0,
+	0,	/* Native long size */
+	1	/* Unsigned representation */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_UnsuccessfullyTransmittedDataVolume_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UnsuccessfullyTransmittedDataVolume = {
+	"RANAP_UnsuccessfullyTransmittedDataVolume",
+	"RANAP_UnsuccessfullyTransmittedDataVolume",
+	RANAP_UnsuccessfullyTransmittedDataVolume_free,
+	RANAP_UnsuccessfullyTransmittedDataVolume_print,
+	RANAP_UnsuccessfullyTransmittedDataVolume_constraint,
+	RANAP_UnsuccessfullyTransmittedDataVolume_decode_ber,
+	RANAP_UnsuccessfullyTransmittedDataVolume_encode_der,
+	RANAP_UnsuccessfullyTransmittedDataVolume_decode_xer,
+	RANAP_UnsuccessfullyTransmittedDataVolume_encode_xer,
+	RANAP_UnsuccessfullyTransmittedDataVolume_decode_uper,
+	RANAP_UnsuccessfullyTransmittedDataVolume_encode_uper,
+	RANAP_UnsuccessfullyTransmittedDataVolume_decode_aper,
+	RANAP_UnsuccessfullyTransmittedDataVolume_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UnsuccessfullyTransmittedDataVolume_tags_1,
+	sizeof(asn_DEF_RANAP_UnsuccessfullyTransmittedDataVolume_tags_1)
+		/sizeof(asn_DEF_RANAP_UnsuccessfullyTransmittedDataVolume_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UnsuccessfullyTransmittedDataVolume_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UnsuccessfullyTransmittedDataVolume_tags_1)
+		/sizeof(asn_DEF_RANAP_UnsuccessfullyTransmittedDataVolume_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_UnsuccessfullyTransmittedDataVolume_constr_1,
+	0, 0,	/* No members */
+	&asn_SPC_RANAP_UnsuccessfullyTransmittedDataVolume_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_UnsuccessfullyTransmittedDataVolume.h b/src/ranap/RANAP_UnsuccessfullyTransmittedDataVolume.h
new file mode 100644
index 0000000..be64f7b
--- /dev/null
+++ b/src/ranap/RANAP_UnsuccessfullyTransmittedDataVolume.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_UnsuccessfullyTransmittedDataVolume_H_
+#define	_RANAP_UnsuccessfullyTransmittedDataVolume_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UnsuccessfullyTransmittedDataVolume */
+typedef unsigned long	 RANAP_UnsuccessfullyTransmittedDataVolume_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UnsuccessfullyTransmittedDataVolume;
+asn_struct_free_f RANAP_UnsuccessfullyTransmittedDataVolume_free;
+asn_struct_print_f RANAP_UnsuccessfullyTransmittedDataVolume_print;
+asn_constr_check_f RANAP_UnsuccessfullyTransmittedDataVolume_constraint;
+ber_type_decoder_f RANAP_UnsuccessfullyTransmittedDataVolume_decode_ber;
+der_type_encoder_f RANAP_UnsuccessfullyTransmittedDataVolume_encode_der;
+xer_type_decoder_f RANAP_UnsuccessfullyTransmittedDataVolume_decode_xer;
+xer_type_encoder_f RANAP_UnsuccessfullyTransmittedDataVolume_encode_xer;
+per_type_decoder_f RANAP_UnsuccessfullyTransmittedDataVolume_decode_uper;
+per_type_encoder_f RANAP_UnsuccessfullyTransmittedDataVolume_encode_uper;
+per_type_decoder_f RANAP_UnsuccessfullyTransmittedDataVolume_decode_aper;
+per_type_encoder_f RANAP_UnsuccessfullyTransmittedDataVolume_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UnsuccessfullyTransmittedDataVolume_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UplinkInformationExchangeFailure.c b/src/ranap/RANAP_UplinkInformationExchangeFailure.c
new file mode 100644
index 0000000..4a4cbb9
--- /dev/null
+++ b/src/ranap/RANAP_UplinkInformationExchangeFailure.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_UplinkInformationExchangeFailure.h"
+
+static int
+memb_uplinkInformationExchangeFailure_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_uplinkInformationExchangeFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_uplinkInformationExchangeFailure_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_uplinkInformationExchangeFailure_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_uplinkInformationExchangeFailure_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_uplinkInformationExchangeFailure_ies_specs_2 = {
+	sizeof(struct uplinkInformationExchangeFailure_ies),
+	offsetof(struct uplinkInformationExchangeFailure_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_uplinkInformationExchangeFailure_ies_2 = {
+	"uplinkInformationExchangeFailure-ies",
+	"uplinkInformationExchangeFailure-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_uplinkInformationExchangeFailure_ies_tags_2,
+	sizeof(asn_DEF_uplinkInformationExchangeFailure_ies_tags_2)
+		/sizeof(asn_DEF_uplinkInformationExchangeFailure_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_uplinkInformationExchangeFailure_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_uplinkInformationExchangeFailure_ies_tags_2)
+		/sizeof(asn_DEF_uplinkInformationExchangeFailure_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_uplinkInformationExchangeFailure_ies_constr_2,
+	asn_MBR_uplinkInformationExchangeFailure_ies_2,
+	1,	/* Single element */
+	&asn_SPC_uplinkInformationExchangeFailure_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_UplinkInformationExchangeFailure_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UplinkInformationExchangeFailure, uplinkInformationExchangeFailure_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_uplinkInformationExchangeFailure_ies_2,
+		memb_uplinkInformationExchangeFailure_ies_constraint_1,
+		&asn_PER_memb_uplinkInformationExchangeFailure_ies_constr_2,
+		0,
+		"uplinkInformationExchangeFailure-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_UplinkInformationExchangeFailure_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_UplinkInformationExchangeFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* uplinkInformationExchangeFailure-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_UplinkInformationExchangeFailure_specs_1 = {
+	sizeof(struct RANAP_UplinkInformationExchangeFailure),
+	offsetof(struct RANAP_UplinkInformationExchangeFailure, _asn_ctx),
+	asn_MAP_RANAP_UplinkInformationExchangeFailure_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UplinkInformationExchangeFailure = {
+	"RANAP_UplinkInformationExchangeFailure",
+	"RANAP_UplinkInformationExchangeFailure",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UplinkInformationExchangeFailure_tags_1,
+	sizeof(asn_DEF_RANAP_UplinkInformationExchangeFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_UplinkInformationExchangeFailure_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UplinkInformationExchangeFailure_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UplinkInformationExchangeFailure_tags_1)
+		/sizeof(asn_DEF_RANAP_UplinkInformationExchangeFailure_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_UplinkInformationExchangeFailure_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_UplinkInformationExchangeFailure_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_UplinkInformationExchangeFailure.h b/src/ranap/RANAP_UplinkInformationExchangeFailure.h
new file mode 100644
index 0000000..7f2f8e4
--- /dev/null
+++ b/src/ranap/RANAP_UplinkInformationExchangeFailure.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_UplinkInformationExchangeFailure_H_
+#define	_RANAP_UplinkInformationExchangeFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UplinkInformationExchangeFailure */
+typedef struct RANAP_UplinkInformationExchangeFailure {
+	struct uplinkInformationExchangeFailure_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} uplinkInformationExchangeFailure_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_UplinkInformationExchangeFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UplinkInformationExchangeFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UplinkInformationExchangeFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UplinkInformationExchangeRequest.c b/src/ranap/RANAP_UplinkInformationExchangeRequest.c
new file mode 100644
index 0000000..1d1a5be
--- /dev/null
+++ b/src/ranap/RANAP_UplinkInformationExchangeRequest.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_UplinkInformationExchangeRequest.h"
+
+static int
+memb_uplinkInformationExchangeRequest_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_uplinkInformationExchangeRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_uplinkInformationExchangeRequest_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_uplinkInformationExchangeRequest_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_uplinkInformationExchangeRequest_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_uplinkInformationExchangeRequest_ies_specs_2 = {
+	sizeof(struct uplinkInformationExchangeRequest_ies),
+	offsetof(struct uplinkInformationExchangeRequest_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_uplinkInformationExchangeRequest_ies_2 = {
+	"uplinkInformationExchangeRequest-ies",
+	"uplinkInformationExchangeRequest-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_uplinkInformationExchangeRequest_ies_tags_2,
+	sizeof(asn_DEF_uplinkInformationExchangeRequest_ies_tags_2)
+		/sizeof(asn_DEF_uplinkInformationExchangeRequest_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_uplinkInformationExchangeRequest_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_uplinkInformationExchangeRequest_ies_tags_2)
+		/sizeof(asn_DEF_uplinkInformationExchangeRequest_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_uplinkInformationExchangeRequest_ies_constr_2,
+	asn_MBR_uplinkInformationExchangeRequest_ies_2,
+	1,	/* Single element */
+	&asn_SPC_uplinkInformationExchangeRequest_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_UplinkInformationExchangeRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UplinkInformationExchangeRequest, uplinkInformationExchangeRequest_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_uplinkInformationExchangeRequest_ies_2,
+		memb_uplinkInformationExchangeRequest_ies_constraint_1,
+		&asn_PER_memb_uplinkInformationExchangeRequest_ies_constr_2,
+		0,
+		"uplinkInformationExchangeRequest-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_UplinkInformationExchangeRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_UplinkInformationExchangeRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* uplinkInformationExchangeRequest-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_UplinkInformationExchangeRequest_specs_1 = {
+	sizeof(struct RANAP_UplinkInformationExchangeRequest),
+	offsetof(struct RANAP_UplinkInformationExchangeRequest, _asn_ctx),
+	asn_MAP_RANAP_UplinkInformationExchangeRequest_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UplinkInformationExchangeRequest = {
+	"RANAP_UplinkInformationExchangeRequest",
+	"RANAP_UplinkInformationExchangeRequest",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UplinkInformationExchangeRequest_tags_1,
+	sizeof(asn_DEF_RANAP_UplinkInformationExchangeRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_UplinkInformationExchangeRequest_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UplinkInformationExchangeRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UplinkInformationExchangeRequest_tags_1)
+		/sizeof(asn_DEF_RANAP_UplinkInformationExchangeRequest_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_UplinkInformationExchangeRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_UplinkInformationExchangeRequest_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_UplinkInformationExchangeRequest.h b/src/ranap/RANAP_UplinkInformationExchangeRequest.h
new file mode 100644
index 0000000..52603cc
--- /dev/null
+++ b/src/ranap/RANAP_UplinkInformationExchangeRequest.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_UplinkInformationExchangeRequest_H_
+#define	_RANAP_UplinkInformationExchangeRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UplinkInformationExchangeRequest */
+typedef struct RANAP_UplinkInformationExchangeRequest {
+	struct uplinkInformationExchangeRequest_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} uplinkInformationExchangeRequest_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_UplinkInformationExchangeRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UplinkInformationExchangeRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UplinkInformationExchangeRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UplinkInformationExchangeResponse.c b/src/ranap/RANAP_UplinkInformationExchangeResponse.c
new file mode 100644
index 0000000..cc37599
--- /dev/null
+++ b/src/ranap/RANAP_UplinkInformationExchangeResponse.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_UplinkInformationExchangeResponse.h"
+
+static int
+memb_uplinkInformationExchangeResponse_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535l)) {
+		/* Perform validation of the inner elements */
+		return td->check_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_type_uplinkInformationExchangeResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_uplinkInformationExchangeResponse_ies_constr_2 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0l,  65535l }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_uplinkInformationExchangeResponse_ies_2[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_RANAP_IE,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_uplinkInformationExchangeResponse_ies_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_uplinkInformationExchangeResponse_ies_specs_2 = {
+	sizeof(struct uplinkInformationExchangeResponse_ies),
+	offsetof(struct uplinkInformationExchangeResponse_ies, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_uplinkInformationExchangeResponse_ies_2 = {
+	"uplinkInformationExchangeResponse-ies",
+	"uplinkInformationExchangeResponse-ies",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_uplinkInformationExchangeResponse_ies_tags_2,
+	sizeof(asn_DEF_uplinkInformationExchangeResponse_ies_tags_2)
+		/sizeof(asn_DEF_uplinkInformationExchangeResponse_ies_tags_2[0]) - 1, /* 1 */
+	asn_DEF_uplinkInformationExchangeResponse_ies_tags_2,	/* Same as above */
+	sizeof(asn_DEF_uplinkInformationExchangeResponse_ies_tags_2)
+		/sizeof(asn_DEF_uplinkInformationExchangeResponse_ies_tags_2[0]), /* 2 */
+	&asn_PER_type_uplinkInformationExchangeResponse_ies_constr_2,
+	asn_MBR_uplinkInformationExchangeResponse_ies_2,
+	1,	/* Single element */
+	&asn_SPC_uplinkInformationExchangeResponse_ies_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_RANAP_UplinkInformationExchangeResponse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_UplinkInformationExchangeResponse, uplinkInformationExchangeResponse_ies),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_uplinkInformationExchangeResponse_ies_2,
+		memb_uplinkInformationExchangeResponse_ies_constraint_1,
+		&asn_PER_memb_uplinkInformationExchangeResponse_ies_constr_2,
+		0,
+		"uplinkInformationExchangeResponse-ies"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_UplinkInformationExchangeResponse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_UplinkInformationExchangeResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* uplinkInformationExchangeResponse-ies */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_UplinkInformationExchangeResponse_specs_1 = {
+	sizeof(struct RANAP_UplinkInformationExchangeResponse),
+	offsetof(struct RANAP_UplinkInformationExchangeResponse, _asn_ctx),
+	asn_MAP_RANAP_UplinkInformationExchangeResponse_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	0,	/* Start extensions */
+	2	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UplinkInformationExchangeResponse = {
+	"RANAP_UplinkInformationExchangeResponse",
+	"RANAP_UplinkInformationExchangeResponse",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UplinkInformationExchangeResponse_tags_1,
+	sizeof(asn_DEF_RANAP_UplinkInformationExchangeResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_UplinkInformationExchangeResponse_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UplinkInformationExchangeResponse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UplinkInformationExchangeResponse_tags_1)
+		/sizeof(asn_DEF_RANAP_UplinkInformationExchangeResponse_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_UplinkInformationExchangeResponse_1,
+	1,	/* Elements count */
+	&asn_SPC_RANAP_UplinkInformationExchangeResponse_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_UplinkInformationExchangeResponse.h b/src/ranap/RANAP_UplinkInformationExchangeResponse.h
new file mode 100644
index 0000000..4c83083
--- /dev/null
+++ b/src/ranap/RANAP_UplinkInformationExchangeResponse.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#ifndef	_RANAP_UplinkInformationExchangeResponse_H_
+#define	_RANAP_UplinkInformationExchangeResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_UplinkInformationExchangeResponse */
+typedef struct RANAP_UplinkInformationExchangeResponse {
+	struct uplinkInformationExchangeResponse_ies {
+		A_SEQUENCE_OF(RANAP_IE_t) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} uplinkInformationExchangeResponse_ies;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_UplinkInformationExchangeResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UplinkInformationExchangeResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UplinkInformationExchangeResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_UserPlaneMode.c b/src/ranap/RANAP_UserPlaneMode.c
new file mode 100644
index 0000000..2a30882
--- /dev/null
+++ b/src/ranap/RANAP_UserPlaneMode.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_UserPlaneMode.h"
+
+int
+RANAP_UserPlaneMode_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_UserPlaneMode_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_UserPlaneMode_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_UserPlaneMode_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_UserPlaneMode_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UserPlaneMode_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UserPlaneMode_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_UserPlaneMode_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_UserPlaneMode_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UserPlaneMode_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UserPlaneMode_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_UserPlaneMode_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_UserPlaneMode_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_UserPlaneMode_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_UserPlaneMode_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UserPlaneMode_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_UserPlaneMode_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UserPlaneMode_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_UserPlaneMode_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_UserPlaneMode_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_UserPlaneMode_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_UserPlaneMode_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_UserPlaneMode_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_UserPlaneMode_value2enum_1[] = {
+	{ 0,	16,	"transparent-mode" },
+	{ 1,	37,	"support-mode-for-predefined-SDU-sizes" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_UserPlaneMode_enum2value_1[] = {
+	1,	/* support-mode-for-predefined-SDU-sizes(1) */
+	0	/* transparent-mode(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_UserPlaneMode_specs_1 = {
+	asn_MAP_RANAP_UserPlaneMode_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_UserPlaneMode_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_UserPlaneMode_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_UserPlaneMode = {
+	"RANAP_UserPlaneMode",
+	"RANAP_UserPlaneMode",
+	RANAP_UserPlaneMode_free,
+	RANAP_UserPlaneMode_print,
+	RANAP_UserPlaneMode_constraint,
+	RANAP_UserPlaneMode_decode_ber,
+	RANAP_UserPlaneMode_encode_der,
+	RANAP_UserPlaneMode_decode_xer,
+	RANAP_UserPlaneMode_encode_xer,
+	RANAP_UserPlaneMode_decode_uper,
+	RANAP_UserPlaneMode_encode_uper,
+	RANAP_UserPlaneMode_decode_aper,
+	RANAP_UserPlaneMode_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_UserPlaneMode_tags_1,
+	sizeof(asn_DEF_RANAP_UserPlaneMode_tags_1)
+		/sizeof(asn_DEF_RANAP_UserPlaneMode_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_UserPlaneMode_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_UserPlaneMode_tags_1)
+		/sizeof(asn_DEF_RANAP_UserPlaneMode_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_UserPlaneMode_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_UserPlaneMode_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_UserPlaneMode.h b/src/ranap/RANAP_UserPlaneMode.h
new file mode 100644
index 0000000..f2d6786
--- /dev/null
+++ b/src/ranap/RANAP_UserPlaneMode.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_UserPlaneMode_H_
+#define	_RANAP_UserPlaneMode_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_UserPlaneMode {
+	RANAP_UserPlaneMode_transparent_mode	= 0,
+	RANAP_UserPlaneMode_support_mode_for_predefined_SDU_sizes	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_UserPlaneMode;
+
+/* RANAP_UserPlaneMode */
+typedef long	 RANAP_UserPlaneMode_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_UserPlaneMode;
+asn_struct_free_f RANAP_UserPlaneMode_free;
+asn_struct_print_f RANAP_UserPlaneMode_print;
+asn_constr_check_f RANAP_UserPlaneMode_constraint;
+ber_type_decoder_f RANAP_UserPlaneMode_decode_ber;
+der_type_encoder_f RANAP_UserPlaneMode_encode_der;
+xer_type_decoder_f RANAP_UserPlaneMode_decode_xer;
+xer_type_encoder_f RANAP_UserPlaneMode_encode_xer;
+per_type_decoder_f RANAP_UserPlaneMode_decode_uper;
+per_type_encoder_f RANAP_UserPlaneMode_encode_uper;
+per_type_decoder_f RANAP_UserPlaneMode_decode_aper;
+per_type_encoder_f RANAP_UserPlaneMode_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_UserPlaneMode_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_VelocityEstimate.c b/src/ranap/RANAP_VelocityEstimate.c
new file mode 100644
index 0000000..88d7a06
--- /dev/null
+++ b/src/ranap/RANAP_VelocityEstimate.c
@@ -0,0 +1,92 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_VelocityEstimate.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_VelocityEstimate_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  3l }	/* (0..3,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_VelocityEstimate_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_VelocityEstimate, choice.horizontalVelocity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_HorizontalVelocity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"horizontalVelocity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_VelocityEstimate, choice.horizontalWithVerticalVelocity),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_HorizontalWithVerticalVelocity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"horizontalWithVerticalVelocity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_VelocityEstimate, choice.horizontalVelocityWithUncertainty),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_HorizontalVelocityWithUncertainty,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"horizontalVelocityWithUncertainty"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_VelocityEstimate, choice.horizontalWithVeritcalVelocityAndUncertainty),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_HorizontalWithVerticalVelocityAndUncertainty,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"horizontalWithVeritcalVelocityAndUncertainty"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_VelocityEstimate_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* horizontalVelocity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* horizontalWithVerticalVelocity */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* horizontalVelocityWithUncertainty */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* horizontalWithVeritcalVelocityAndUncertainty */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_VelocityEstimate_specs_1 = {
+	sizeof(struct RANAP_VelocityEstimate),
+	offsetof(struct RANAP_VelocityEstimate, _asn_ctx),
+	offsetof(struct RANAP_VelocityEstimate, present),
+	sizeof(((struct RANAP_VelocityEstimate *)0)->present),
+	asn_MAP_RANAP_VelocityEstimate_tag2el_1,
+	4,	/* Count of tags in the map */
+	0,
+	4	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_VelocityEstimate = {
+	"RANAP_VelocityEstimate",
+	"RANAP_VelocityEstimate",
+	CHOICE_free,
+	CHOICE_print,
+	CHOICE_constraint,
+	CHOICE_decode_ber,
+	CHOICE_encode_der,
+	CHOICE_decode_xer,
+	CHOICE_encode_xer,
+	CHOICE_decode_uper,
+	CHOICE_encode_uper,
+	CHOICE_decode_aper,
+	CHOICE_encode_aper,
+	CHOICE_outmost_tag,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	&asn_PER_type_RANAP_VelocityEstimate_constr_1,
+	asn_MBR_RANAP_VelocityEstimate_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_VelocityEstimate_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_VelocityEstimate.h b/src/ranap/RANAP_VelocityEstimate.h
new file mode 100644
index 0000000..2718dce
--- /dev/null
+++ b/src/ranap/RANAP_VelocityEstimate.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_VelocityEstimate_H_
+#define	_RANAP_VelocityEstimate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANAP_HorizontalVelocity.h"
+#include "RANAP_HorizontalWithVerticalVelocity.h"
+#include "RANAP_HorizontalVelocityWithUncertainty.h"
+#include "RANAP_HorizontalWithVerticalVelocityAndUncertainty.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_VelocityEstimate_PR {
+	RANAP_VelocityEstimate_PR_NOTHING,	/* No components present */
+	RANAP_VelocityEstimate_PR_horizontalVelocity,
+	RANAP_VelocityEstimate_PR_horizontalWithVerticalVelocity,
+	RANAP_VelocityEstimate_PR_horizontalVelocityWithUncertainty,
+	RANAP_VelocityEstimate_PR_horizontalWithVeritcalVelocityAndUncertainty,
+	/* Extensions may appear below */
+	
+} RANAP_VelocityEstimate_PR;
+
+/* RANAP_VelocityEstimate */
+typedef struct RANAP_VelocityEstimate {
+	RANAP_VelocityEstimate_PR present;
+	union RANAP_VelocityEstimate_u {
+		RANAP_HorizontalVelocity_t	 horizontalVelocity;
+		RANAP_HorizontalWithVerticalVelocity_t	 horizontalWithVerticalVelocity;
+		RANAP_HorizontalVelocityWithUncertainty_t	 horizontalVelocityWithUncertainty;
+		RANAP_HorizontalWithVerticalVelocityAndUncertainty_t	 horizontalWithVeritcalVelocityAndUncertainty;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_VelocityEstimate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_VelocityEstimate;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_VelocityEstimate_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_VerticalAccuracyCode.c b/src/ranap/RANAP_VerticalAccuracyCode.c
new file mode 100644
index 0000000..8dc6b4a
--- /dev/null
+++ b/src/ranap/RANAP_VerticalAccuracyCode.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_VerticalAccuracyCode.h"
+
+int
+RANAP_VerticalAccuracyCode_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 127l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_VerticalAccuracyCode_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeInteger.free_struct;
+	td->print_struct   = asn_DEF_NativeInteger.print_struct;
+	td->check_constraints = asn_DEF_NativeInteger.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeInteger.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeInteger.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeInteger.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+	td->elements       = asn_DEF_NativeInteger.elements;
+	td->elements_count = asn_DEF_NativeInteger.elements_count;
+	td->specifics      = asn_DEF_NativeInteger.specifics;
+}
+
+void
+RANAP_VerticalAccuracyCode_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_VerticalAccuracyCode_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_VerticalAccuracyCode_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_VerticalAccuracyCode_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_VerticalAccuracyCode_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_VerticalAccuracyCode_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_VerticalAccuracyCode_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_VerticalAccuracyCode_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_VerticalAccuracyCode_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_VerticalAccuracyCode_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_VerticalAccuracyCode_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_VerticalAccuracyCode_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_VerticalAccuracyCode_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_VerticalAccuracyCode_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_VerticalAccuracyCode_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_VerticalAccuracyCode_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_VerticalAccuracyCode_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_VerticalAccuracyCode_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_VerticalAccuracyCode_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_VerticalAccuracyCode_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_VerticalAccuracyCode_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  0l,  127l }	/* (0..127) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_VerticalAccuracyCode_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_VerticalAccuracyCode = {
+	"RANAP_VerticalAccuracyCode",
+	"RANAP_VerticalAccuracyCode",
+	RANAP_VerticalAccuracyCode_free,
+	RANAP_VerticalAccuracyCode_print,
+	RANAP_VerticalAccuracyCode_constraint,
+	RANAP_VerticalAccuracyCode_decode_ber,
+	RANAP_VerticalAccuracyCode_encode_der,
+	RANAP_VerticalAccuracyCode_decode_xer,
+	RANAP_VerticalAccuracyCode_encode_xer,
+	RANAP_VerticalAccuracyCode_decode_uper,
+	RANAP_VerticalAccuracyCode_encode_uper,
+	RANAP_VerticalAccuracyCode_decode_aper,
+	RANAP_VerticalAccuracyCode_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_VerticalAccuracyCode_tags_1,
+	sizeof(asn_DEF_RANAP_VerticalAccuracyCode_tags_1)
+		/sizeof(asn_DEF_RANAP_VerticalAccuracyCode_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_VerticalAccuracyCode_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_VerticalAccuracyCode_tags_1)
+		/sizeof(asn_DEF_RANAP_VerticalAccuracyCode_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_VerticalAccuracyCode_constr_1,
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/src/ranap/RANAP_VerticalAccuracyCode.h b/src/ranap/RANAP_VerticalAccuracyCode.h
new file mode 100644
index 0000000..92cb974
--- /dev/null
+++ b/src/ranap/RANAP_VerticalAccuracyCode.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_VerticalAccuracyCode_H_
+#define	_RANAP_VerticalAccuracyCode_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_VerticalAccuracyCode */
+typedef long	 RANAP_VerticalAccuracyCode_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_VerticalAccuracyCode;
+asn_struct_free_f RANAP_VerticalAccuracyCode_free;
+asn_struct_print_f RANAP_VerticalAccuracyCode_print;
+asn_constr_check_f RANAP_VerticalAccuracyCode_constraint;
+ber_type_decoder_f RANAP_VerticalAccuracyCode_decode_ber;
+der_type_encoder_f RANAP_VerticalAccuracyCode_encode_der;
+xer_type_decoder_f RANAP_VerticalAccuracyCode_decode_xer;
+xer_type_encoder_f RANAP_VerticalAccuracyCode_encode_xer;
+per_type_decoder_f RANAP_VerticalAccuracyCode_decode_uper;
+per_type_encoder_f RANAP_VerticalAccuracyCode_encode_uper;
+per_type_decoder_f RANAP_VerticalAccuracyCode_decode_aper;
+per_type_encoder_f RANAP_VerticalAccuracyCode_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_VerticalAccuracyCode_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_VerticalSpeedDirection.c b/src/ranap/RANAP_VerticalSpeedDirection.c
new file mode 100644
index 0000000..d6aaa0b
--- /dev/null
+++ b/src/ranap/RANAP_VerticalSpeedDirection.c
@@ -0,0 +1,165 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_VerticalSpeedDirection.h"
+
+int
+RANAP_VerticalSpeedDirection_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_VerticalSpeedDirection_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_VerticalSpeedDirection_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_VerticalSpeedDirection_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_VerticalSpeedDirection_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_VerticalSpeedDirection_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_VerticalSpeedDirection_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_VerticalSpeedDirection_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_VerticalSpeedDirection_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_VerticalSpeedDirection_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_VerticalSpeedDirection_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_VerticalSpeedDirection_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_VerticalSpeedDirection_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_VerticalSpeedDirection_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_VerticalSpeedDirection_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_VerticalSpeedDirection_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_VerticalSpeedDirection_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_VerticalSpeedDirection_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_VerticalSpeedDirection_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_VerticalSpeedDirection_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_VerticalSpeedDirection_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_VerticalSpeedDirection_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_VerticalSpeedDirection_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 1,  1,  0l,  1l }	/* (0..1) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_VerticalSpeedDirection_value2enum_1[] = {
+	{ 0,	6,	"upward" },
+	{ 1,	8,	"downward" }
+};
+static const unsigned int asn_MAP_RANAP_VerticalSpeedDirection_enum2value_1[] = {
+	1,	/* downward(1) */
+	0	/* upward(0) */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_VerticalSpeedDirection_specs_1 = {
+	asn_MAP_RANAP_VerticalSpeedDirection_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_VerticalSpeedDirection_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	0,	/* Enumeration is not extensible */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_VerticalSpeedDirection_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_VerticalSpeedDirection = {
+	"RANAP_VerticalSpeedDirection",
+	"RANAP_VerticalSpeedDirection",
+	RANAP_VerticalSpeedDirection_free,
+	RANAP_VerticalSpeedDirection_print,
+	RANAP_VerticalSpeedDirection_constraint,
+	RANAP_VerticalSpeedDirection_decode_ber,
+	RANAP_VerticalSpeedDirection_encode_der,
+	RANAP_VerticalSpeedDirection_decode_xer,
+	RANAP_VerticalSpeedDirection_encode_xer,
+	RANAP_VerticalSpeedDirection_decode_uper,
+	RANAP_VerticalSpeedDirection_encode_uper,
+	RANAP_VerticalSpeedDirection_decode_aper,
+	RANAP_VerticalSpeedDirection_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_VerticalSpeedDirection_tags_1,
+	sizeof(asn_DEF_RANAP_VerticalSpeedDirection_tags_1)
+		/sizeof(asn_DEF_RANAP_VerticalSpeedDirection_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_VerticalSpeedDirection_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_VerticalSpeedDirection_tags_1)
+		/sizeof(asn_DEF_RANAP_VerticalSpeedDirection_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_VerticalSpeedDirection_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_VerticalSpeedDirection_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_VerticalSpeedDirection.h b/src/ranap/RANAP_VerticalSpeedDirection.h
new file mode 100644
index 0000000..feac00c
--- /dev/null
+++ b/src/ranap/RANAP_VerticalSpeedDirection.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_VerticalSpeedDirection_H_
+#define	_RANAP_VerticalSpeedDirection_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_VerticalSpeedDirection {
+	RANAP_VerticalSpeedDirection_upward	= 0,
+	RANAP_VerticalSpeedDirection_downward	= 1
+} e_RANAP_VerticalSpeedDirection;
+
+/* RANAP_VerticalSpeedDirection */
+typedef long	 RANAP_VerticalSpeedDirection_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_VerticalSpeedDirection;
+asn_struct_free_f RANAP_VerticalSpeedDirection_free;
+asn_struct_print_f RANAP_VerticalSpeedDirection_print;
+asn_constr_check_f RANAP_VerticalSpeedDirection_constraint;
+ber_type_decoder_f RANAP_VerticalSpeedDirection_decode_ber;
+der_type_encoder_f RANAP_VerticalSpeedDirection_encode_der;
+xer_type_decoder_f RANAP_VerticalSpeedDirection_decode_xer;
+xer_type_encoder_f RANAP_VerticalSpeedDirection_encode_xer;
+per_type_decoder_f RANAP_VerticalSpeedDirection_decode_uper;
+per_type_encoder_f RANAP_VerticalSpeedDirection_encode_uper;
+per_type_decoder_f RANAP_VerticalSpeedDirection_decode_aper;
+per_type_encoder_f RANAP_VerticalSpeedDirection_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_VerticalSpeedDirection_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_VerticalVelocity.c b/src/ranap/RANAP_VerticalVelocity.c
new file mode 100644
index 0000000..659971f
--- /dev/null
+++ b/src/ranap/RANAP_VerticalVelocity.c
@@ -0,0 +1,101 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_VerticalVelocity.h"
+
+static int
+memb_veritcalSpeed_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0l && value <= 255l)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		_ASN_CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_per_constraints_t asn_PER_memb_veritcalSpeed_constr_2 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  0l,  255l }	/* (0..255) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_VerticalVelocity_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_VerticalVelocity, veritcalSpeed),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		memb_veritcalSpeed_constraint_1,
+		&asn_PER_memb_veritcalSpeed_constr_2,
+		0,
+		"veritcalSpeed"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_VerticalVelocity, veritcalSpeedDirection),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_VerticalSpeedDirection,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"veritcalSpeedDirection"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_VerticalVelocity_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_VerticalVelocity_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* veritcalSpeed */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* veritcalSpeedDirection */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_VerticalVelocity_specs_1 = {
+	sizeof(struct RANAP_VerticalVelocity),
+	offsetof(struct RANAP_VerticalVelocity, _asn_ctx),
+	asn_MAP_RANAP_VerticalVelocity_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_VerticalVelocity = {
+	"RANAP_VerticalVelocity",
+	"RANAP_VerticalVelocity",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_VerticalVelocity_tags_1,
+	sizeof(asn_DEF_RANAP_VerticalVelocity_tags_1)
+		/sizeof(asn_DEF_RANAP_VerticalVelocity_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_VerticalVelocity_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_VerticalVelocity_tags_1)
+		/sizeof(asn_DEF_RANAP_VerticalVelocity_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_VerticalVelocity_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_VerticalVelocity_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_VerticalVelocity.h b/src/ranap/RANAP_VerticalVelocity.h
new file mode 100644
index 0000000..45be83c
--- /dev/null
+++ b/src/ranap/RANAP_VerticalVelocity.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_VerticalVelocity_H_
+#define	_RANAP_VerticalVelocity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include "RANAP_VerticalSpeedDirection.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANAP_VerticalVelocity */
+typedef struct RANAP_VerticalVelocity {
+	long	 veritcalSpeed;
+	RANAP_VerticalSpeedDirection_t	 veritcalSpeedDirection;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANAP_VerticalVelocity_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_VerticalVelocity;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_VerticalVelocity_H_ */
+#include <asn_internal.h>
diff --git a/src/ranap/RANAP_VoiceSupportMatchIndicator.c b/src/ranap/RANAP_VoiceSupportMatchIndicator.c
new file mode 100644
index 0000000..eff0a3b
--- /dev/null
+++ b/src/ranap/RANAP_VoiceSupportMatchIndicator.c
@@ -0,0 +1,167 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_VoiceSupportMatchIndicator.h"
+
+int
+RANAP_VoiceSupportMatchIndicator_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	/* Replace with underlying type checker */
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+RANAP_VoiceSupportMatchIndicator_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+	td->free_struct    = asn_DEF_NativeEnumerated.free_struct;
+	td->print_struct   = asn_DEF_NativeEnumerated.print_struct;
+	td->check_constraints = asn_DEF_NativeEnumerated.check_constraints;
+	td->ber_decoder    = asn_DEF_NativeEnumerated.ber_decoder;
+	td->der_encoder    = asn_DEF_NativeEnumerated.der_encoder;
+	td->xer_decoder    = asn_DEF_NativeEnumerated.xer_decoder;
+	td->xer_encoder    = asn_DEF_NativeEnumerated.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeEnumerated.uper_decoder;
+	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
+	td->aper_decoder   = asn_DEF_NativeEnumerated.aper_decoder;
+	td->aper_encoder   = asn_DEF_NativeEnumerated.aper_encoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
+	td->elements       = asn_DEF_NativeEnumerated.elements;
+	td->elements_count = asn_DEF_NativeEnumerated.elements_count;
+     /* td->specifics      = asn_DEF_NativeEnumerated.specifics;	// Defined explicitly */
+}
+
+void
+RANAP_VoiceSupportMatchIndicator_free(asn_TYPE_descriptor_t *td,
+		void *struct_ptr, int contents_only) {
+	RANAP_VoiceSupportMatchIndicator_1_inherit_TYPE_descriptor(td);
+	td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+RANAP_VoiceSupportMatchIndicator_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+		int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_VoiceSupportMatchIndicator_1_inherit_TYPE_descriptor(td);
+	return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_VoiceSupportMatchIndicator_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const void *bufptr, size_t size, int tag_mode) {
+	RANAP_VoiceSupportMatchIndicator_1_inherit_TYPE_descriptor(td);
+	return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+RANAP_VoiceSupportMatchIndicator_encode_der(asn_TYPE_descriptor_t *td,
+		void *structure, int tag_mode, ber_tlv_tag_t tag,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_VoiceSupportMatchIndicator_1_inherit_TYPE_descriptor(td);
+	return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_VoiceSupportMatchIndicator_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+	RANAP_VoiceSupportMatchIndicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+RANAP_VoiceSupportMatchIndicator_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+		int ilevel, enum xer_encoder_flags_e flags,
+		asn_app_consume_bytes_f *cb, void *app_key) {
+	RANAP_VoiceSupportMatchIndicator_1_inherit_TYPE_descriptor(td);
+	return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+RANAP_VoiceSupportMatchIndicator_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_VoiceSupportMatchIndicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+RANAP_VoiceSupportMatchIndicator_encode_uper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_VoiceSupportMatchIndicator_1_inherit_TYPE_descriptor(td);
+	return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+asn_enc_rval_t
+RANAP_VoiceSupportMatchIndicator_encode_aper(asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints,
+		void *structure, asn_per_outp_t *per_out) {
+	RANAP_VoiceSupportMatchIndicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_encoder(td, constraints, structure, per_out);
+}
+
+asn_dec_rval_t
+RANAP_VoiceSupportMatchIndicator_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+		asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+	RANAP_VoiceSupportMatchIndicator_1_inherit_TYPE_descriptor(td);
+	return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+static asn_per_constraints_t asn_PER_type_RANAP_VoiceSupportMatchIndicator_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0l,  1l }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RANAP_VoiceSupportMatchIndicator_value2enum_1[] = {
+	{ 0,	9,	"supported" },
+	{ 1,	13,	"not-supported" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RANAP_VoiceSupportMatchIndicator_enum2value_1[] = {
+	1,	/* not-supported(1) */
+	0	/* supported(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_RANAP_VoiceSupportMatchIndicator_specs_1 = {
+	asn_MAP_RANAP_VoiceSupportMatchIndicator_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RANAP_VoiceSupportMatchIndicator_enum2value_1,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_VoiceSupportMatchIndicator_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_VoiceSupportMatchIndicator = {
+	"RANAP_VoiceSupportMatchIndicator",
+	"RANAP_VoiceSupportMatchIndicator",
+	RANAP_VoiceSupportMatchIndicator_free,
+	RANAP_VoiceSupportMatchIndicator_print,
+	RANAP_VoiceSupportMatchIndicator_constraint,
+	RANAP_VoiceSupportMatchIndicator_decode_ber,
+	RANAP_VoiceSupportMatchIndicator_encode_der,
+	RANAP_VoiceSupportMatchIndicator_decode_xer,
+	RANAP_VoiceSupportMatchIndicator_encode_xer,
+	RANAP_VoiceSupportMatchIndicator_decode_uper,
+	RANAP_VoiceSupportMatchIndicator_encode_uper,
+	RANAP_VoiceSupportMatchIndicator_decode_aper,
+	RANAP_VoiceSupportMatchIndicator_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_VoiceSupportMatchIndicator_tags_1,
+	sizeof(asn_DEF_RANAP_VoiceSupportMatchIndicator_tags_1)
+		/sizeof(asn_DEF_RANAP_VoiceSupportMatchIndicator_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_VoiceSupportMatchIndicator_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_VoiceSupportMatchIndicator_tags_1)
+		/sizeof(asn_DEF_RANAP_VoiceSupportMatchIndicator_tags_1[0]), /* 1 */
+	&asn_PER_type_RANAP_VoiceSupportMatchIndicator_constr_1,
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RANAP_VoiceSupportMatchIndicator_specs_1	/* Additional specs */
+};
+
diff --git a/src/ranap/RANAP_VoiceSupportMatchIndicator.h b/src/ranap/RANAP_VoiceSupportMatchIndicator.h
new file mode 100644
index 0000000..f4644b3
--- /dev/null
+++ b/src/ranap/RANAP_VoiceSupportMatchIndicator.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#ifndef	_RANAP_VoiceSupportMatchIndicator_H_
+#define	_RANAP_VoiceSupportMatchIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANAP_VoiceSupportMatchIndicator {
+	RANAP_VoiceSupportMatchIndicator_supported	= 0,
+	RANAP_VoiceSupportMatchIndicator_not_supported	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANAP_VoiceSupportMatchIndicator;
+
+/* RANAP_VoiceSupportMatchIndicator */
+typedef long	 RANAP_VoiceSupportMatchIndicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANAP_VoiceSupportMatchIndicator;
+asn_struct_free_f RANAP_VoiceSupportMatchIndicator_free;
+asn_struct_print_f RANAP_VoiceSupportMatchIndicator_print;
+asn_constr_check_f RANAP_VoiceSupportMatchIndicator_constraint;
+ber_type_decoder_f RANAP_VoiceSupportMatchIndicator_decode_ber;
+der_type_encoder_f RANAP_VoiceSupportMatchIndicator_encode_der;
+xer_type_decoder_f RANAP_VoiceSupportMatchIndicator_decode_xer;
+xer_type_encoder_f RANAP_VoiceSupportMatchIndicator_encode_xer;
+per_type_decoder_f RANAP_VoiceSupportMatchIndicator_decode_uper;
+per_type_encoder_f RANAP_VoiceSupportMatchIndicator_encode_uper;
+per_type_decoder_f RANAP_VoiceSupportMatchIndicator_decode_aper;
+per_type_encoder_f RANAP_VoiceSupportMatchIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANAP_VoiceSupportMatchIndicator_H_ */
+#include <asn_internal.h>